<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>find_aniso_shape_models [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_matching.html">Matching</a> / <a href="toc_matching_shapebased.html">Shape-Based</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">find_aniso_shape_models</span><span data-if="c" style="display:none;">T_find_aniso_shape_models</span><span data-if="cpp" style="display:none;">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none;">FindAnisoShapeModels</span><span data-if="python" style="display:none;">find_aniso_shape_models</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">find_aniso_shape_models</span><span data-if="c" style="display:none;">T_find_aniso_shape_models</span><span data-if="cpp" style="display:none;">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none;">FindAnisoShapeModels</span><span data-if="python" style="display:none;">find_aniso_shape_models</span></code> — Find the best matches of multiple anisotropically scaled shape
models.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>find_aniso_shape_models</b>(<a href="#Image"><i>Image</i></a> :  : <a href="#ModelIDs"><i>ModelIDs</i></a>, <a href="#AngleStart"><i>AngleStart</i></a>, <a href="#AngleExtent"><i>AngleExtent</i></a>, <a href="#ScaleRMin"><i>ScaleRMin</i></a>, <a href="#ScaleRMax"><i>ScaleRMax</i></a>, <a href="#ScaleCMin"><i>ScaleCMin</i></a>, <a href="#ScaleCMax"><i>ScaleCMax</i></a>, <a href="#MinScore"><i>MinScore</i></a>, <a href="#NumMatches"><i>NumMatches</i></a>, <a href="#MaxOverlap"><i>MaxOverlap</i></a>, <a href="#SubPixel"><i>SubPixel</i></a>, <a href="#NumLevels"><i>NumLevels</i></a>, <a href="#Greediness"><i>Greediness</i></a> : <a href="#Row"><i>Row</i></a>, <a href="#Column"><i>Column</i></a>, <a href="#Angle"><i>Angle</i></a>, <a href="#ScaleR"><i>ScaleR</i></a>, <a href="#ScaleC"><i>ScaleC</i></a>, <a href="#Score"><i>Score</i></a>, <a href="#Model"><i>Model</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_find_aniso_shape_models</b>(const Hobject <a href="#Image"><i>Image</i></a>, const Htuple <a href="#ModelIDs"><i>ModelIDs</i></a>, const Htuple <a href="#AngleStart"><i>AngleStart</i></a>, const Htuple <a href="#AngleExtent"><i>AngleExtent</i></a>, const Htuple <a href="#ScaleRMin"><i>ScaleRMin</i></a>, const Htuple <a href="#ScaleRMax"><i>ScaleRMax</i></a>, const Htuple <a href="#ScaleCMin"><i>ScaleCMin</i></a>, const Htuple <a href="#ScaleCMax"><i>ScaleCMax</i></a>, const Htuple <a href="#MinScore"><i>MinScore</i></a>, const Htuple <a href="#NumMatches"><i>NumMatches</i></a>, const Htuple <a href="#MaxOverlap"><i>MaxOverlap</i></a>, const Htuple <a href="#SubPixel"><i>SubPixel</i></a>, const Htuple <a href="#NumLevels"><i>NumLevels</i></a>, const Htuple <a href="#Greediness"><i>Greediness</i></a>, Htuple* <a href="#Row"><i>Row</i></a>, Htuple* <a href="#Column"><i>Column</i></a>, Htuple* <a href="#Angle"><i>Angle</i></a>, Htuple* <a href="#ScaleR"><i>ScaleR</i></a>, Htuple* <a href="#ScaleC"><i>ScaleC</i></a>, Htuple* <a href="#Score"><i>Score</i></a>, Htuple* <a href="#Model"><i>Model</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>FindAnisoShapeModels</b>(const HObject&amp; <a href="#Image"><i>Image</i></a>, const HTuple&amp; <a href="#ModelIDs"><i>ModelIDs</i></a>, const HTuple&amp; <a href="#AngleStart"><i>AngleStart</i></a>, const HTuple&amp; <a href="#AngleExtent"><i>AngleExtent</i></a>, const HTuple&amp; <a href="#ScaleRMin"><i>ScaleRMin</i></a>, const HTuple&amp; <a href="#ScaleRMax"><i>ScaleRMax</i></a>, const HTuple&amp; <a href="#ScaleCMin"><i>ScaleCMin</i></a>, const HTuple&amp; <a href="#ScaleCMax"><i>ScaleCMax</i></a>, const HTuple&amp; <a href="#MinScore"><i>MinScore</i></a>, const HTuple&amp; <a href="#NumMatches"><i>NumMatches</i></a>, const HTuple&amp; <a href="#MaxOverlap"><i>MaxOverlap</i></a>, const HTuple&amp; <a href="#SubPixel"><i>SubPixel</i></a>, const HTuple&amp; <a href="#NumLevels"><i>NumLevels</i></a>, const HTuple&amp; <a href="#Greediness"><i>Greediness</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Angle"><i>Angle</i></a>, HTuple* <a href="#ScaleR"><i>ScaleR</i></a>, HTuple* <a href="#ScaleC"><i>ScaleC</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HTuple* <a href="#Model"><i>Model</i></a>)</code></p>
<p>
<code>static void <a href="HShapeModel.html">HShapeModel</a>::<b>FindAnisoShapeModels</b>(const HImage&amp; <a href="#Image"><i>Image</i></a>, const HShapeModelArray&amp; <a href="#ModelIDs"><i>ModelIDs</i></a>, const HTuple&amp; <a href="#AngleStart"><i>AngleStart</i></a>, const HTuple&amp; <a href="#AngleExtent"><i>AngleExtent</i></a>, const HTuple&amp; <a href="#ScaleRMin"><i>ScaleRMin</i></a>, const HTuple&amp; <a href="#ScaleRMax"><i>ScaleRMax</i></a>, const HTuple&amp; <a href="#ScaleCMin"><i>ScaleCMin</i></a>, const HTuple&amp; <a href="#ScaleCMax"><i>ScaleCMax</i></a>, const HTuple&amp; <a href="#MinScore"><i>MinScore</i></a>, const HTuple&amp; <a href="#NumMatches"><i>NumMatches</i></a>, const HTuple&amp; <a href="#MaxOverlap"><i>MaxOverlap</i></a>, const HTuple&amp; <a href="#SubPixel"><i>SubPixel</i></a>, const HTuple&amp; <a href="#NumLevels"><i>NumLevels</i></a>, const HTuple&amp; <a href="#Greediness"><i>Greediness</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Angle"><i>Angle</i></a>, HTuple* <a href="#ScaleR"><i>ScaleR</i></a>, HTuple* <a href="#ScaleC"><i>ScaleC</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HTuple* <a href="#Model"><i>Model</i></a>)</code></p>
<p>
<code>void <a href="HShapeModel.html">HShapeModel</a>::<b>FindAnisoShapeModels</b>(const HImage&amp; <a href="#Image"><i>Image</i></a>, double <a href="#AngleStart"><i>AngleStart</i></a>, double <a href="#AngleExtent"><i>AngleExtent</i></a>, double <a href="#ScaleRMin"><i>ScaleRMin</i></a>, double <a href="#ScaleRMax"><i>ScaleRMax</i></a>, double <a href="#ScaleCMin"><i>ScaleCMin</i></a>, double <a href="#ScaleCMax"><i>ScaleCMax</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, Hlong <a href="#NumMatches"><i>NumMatches</i></a>, double <a href="#MaxOverlap"><i>MaxOverlap</i></a>, const HString&amp; <a href="#SubPixel"><i>SubPixel</i></a>, Hlong <a href="#NumLevels"><i>NumLevels</i></a>, double <a href="#Greediness"><i>Greediness</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Angle"><i>Angle</i></a>, HTuple* <a href="#ScaleR"><i>ScaleR</i></a>, HTuple* <a href="#ScaleC"><i>ScaleC</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HTuple* <a href="#Model"><i>Model</i></a>) const</code></p>
<p>
<code>void <a href="HShapeModel.html">HShapeModel</a>::<b>FindAnisoShapeModels</b>(const HImage&amp; <a href="#Image"><i>Image</i></a>, double <a href="#AngleStart"><i>AngleStart</i></a>, double <a href="#AngleExtent"><i>AngleExtent</i></a>, double <a href="#ScaleRMin"><i>ScaleRMin</i></a>, double <a href="#ScaleRMax"><i>ScaleRMax</i></a>, double <a href="#ScaleCMin"><i>ScaleCMin</i></a>, double <a href="#ScaleCMax"><i>ScaleCMax</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, Hlong <a href="#NumMatches"><i>NumMatches</i></a>, double <a href="#MaxOverlap"><i>MaxOverlap</i></a>, const char* <a href="#SubPixel"><i>SubPixel</i></a>, Hlong <a href="#NumLevels"><i>NumLevels</i></a>, double <a href="#Greediness"><i>Greediness</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Angle"><i>Angle</i></a>, HTuple* <a href="#ScaleR"><i>ScaleR</i></a>, HTuple* <a href="#ScaleC"><i>ScaleC</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HTuple* <a href="#Model"><i>Model</i></a>) const</code></p>
<p>
<code>void <a href="HShapeModel.html">HShapeModel</a>::<b>FindAnisoShapeModels</b>(const HImage&amp; <a href="#Image"><i>Image</i></a>, double <a href="#AngleStart"><i>AngleStart</i></a>, double <a href="#AngleExtent"><i>AngleExtent</i></a>, double <a href="#ScaleRMin"><i>ScaleRMin</i></a>, double <a href="#ScaleRMax"><i>ScaleRMax</i></a>, double <a href="#ScaleCMin"><i>ScaleCMin</i></a>, double <a href="#ScaleCMax"><i>ScaleCMax</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, Hlong <a href="#NumMatches"><i>NumMatches</i></a>, double <a href="#MaxOverlap"><i>MaxOverlap</i></a>, const wchar_t* <a href="#SubPixel"><i>SubPixel</i></a>, Hlong <a href="#NumLevels"><i>NumLevels</i></a>, double <a href="#Greediness"><i>Greediness</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Angle"><i>Angle</i></a>, HTuple* <a href="#ScaleR"><i>ScaleR</i></a>, HTuple* <a href="#ScaleC"><i>ScaleC</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HTuple* <a href="#Model"><i>Model</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code>void <a href="HImage.html">HImage</a>::<b>FindAnisoShapeModels</b>(const HShapeModelArray&amp; <a href="#ModelIDs"><i>ModelIDs</i></a>, const HTuple&amp; <a href="#AngleStart"><i>AngleStart</i></a>, const HTuple&amp; <a href="#AngleExtent"><i>AngleExtent</i></a>, const HTuple&amp; <a href="#ScaleRMin"><i>ScaleRMin</i></a>, const HTuple&amp; <a href="#ScaleRMax"><i>ScaleRMax</i></a>, const HTuple&amp; <a href="#ScaleCMin"><i>ScaleCMin</i></a>, const HTuple&amp; <a href="#ScaleCMax"><i>ScaleCMax</i></a>, const HTuple&amp; <a href="#MinScore"><i>MinScore</i></a>, const HTuple&amp; <a href="#NumMatches"><i>NumMatches</i></a>, const HTuple&amp; <a href="#MaxOverlap"><i>MaxOverlap</i></a>, const HTuple&amp; <a href="#SubPixel"><i>SubPixel</i></a>, const HTuple&amp; <a href="#NumLevels"><i>NumLevels</i></a>, const HTuple&amp; <a href="#Greediness"><i>Greediness</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Angle"><i>Angle</i></a>, HTuple* <a href="#ScaleR"><i>ScaleR</i></a>, HTuple* <a href="#ScaleC"><i>ScaleC</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HTuple* <a href="#Model"><i>Model</i></a>) const</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>::<b>FindAnisoShapeModels</b>(const HShapeModel&amp; <a href="#ModelIDs"><i>ModelIDs</i></a>, double <a href="#AngleStart"><i>AngleStart</i></a>, double <a href="#AngleExtent"><i>AngleExtent</i></a>, double <a href="#ScaleRMin"><i>ScaleRMin</i></a>, double <a href="#ScaleRMax"><i>ScaleRMax</i></a>, double <a href="#ScaleCMin"><i>ScaleCMin</i></a>, double <a href="#ScaleCMax"><i>ScaleCMax</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, Hlong <a href="#NumMatches"><i>NumMatches</i></a>, double <a href="#MaxOverlap"><i>MaxOverlap</i></a>, const HString&amp; <a href="#SubPixel"><i>SubPixel</i></a>, Hlong <a href="#NumLevels"><i>NumLevels</i></a>, double <a href="#Greediness"><i>Greediness</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Angle"><i>Angle</i></a>, HTuple* <a href="#ScaleR"><i>ScaleR</i></a>, HTuple* <a href="#ScaleC"><i>ScaleC</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HTuple* <a href="#Model"><i>Model</i></a>) const</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>::<b>FindAnisoShapeModels</b>(const HShapeModel&amp; <a href="#ModelIDs"><i>ModelIDs</i></a>, double <a href="#AngleStart"><i>AngleStart</i></a>, double <a href="#AngleExtent"><i>AngleExtent</i></a>, double <a href="#ScaleRMin"><i>ScaleRMin</i></a>, double <a href="#ScaleRMax"><i>ScaleRMax</i></a>, double <a href="#ScaleCMin"><i>ScaleCMin</i></a>, double <a href="#ScaleCMax"><i>ScaleCMax</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, Hlong <a href="#NumMatches"><i>NumMatches</i></a>, double <a href="#MaxOverlap"><i>MaxOverlap</i></a>, const char* <a href="#SubPixel"><i>SubPixel</i></a>, Hlong <a href="#NumLevels"><i>NumLevels</i></a>, double <a href="#Greediness"><i>Greediness</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Angle"><i>Angle</i></a>, HTuple* <a href="#ScaleR"><i>ScaleR</i></a>, HTuple* <a href="#ScaleC"><i>ScaleC</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HTuple* <a href="#Model"><i>Model</i></a>) const</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>::<b>FindAnisoShapeModels</b>(const HShapeModel&amp; <a href="#ModelIDs"><i>ModelIDs</i></a>, double <a href="#AngleStart"><i>AngleStart</i></a>, double <a href="#AngleExtent"><i>AngleExtent</i></a>, double <a href="#ScaleRMin"><i>ScaleRMin</i></a>, double <a href="#ScaleRMax"><i>ScaleRMax</i></a>, double <a href="#ScaleCMin"><i>ScaleCMin</i></a>, double <a href="#ScaleCMax"><i>ScaleCMax</i></a>, double <a href="#MinScore"><i>MinScore</i></a>, Hlong <a href="#NumMatches"><i>NumMatches</i></a>, double <a href="#MaxOverlap"><i>MaxOverlap</i></a>, const wchar_t* <a href="#SubPixel"><i>SubPixel</i></a>, Hlong <a href="#NumLevels"><i>NumLevels</i></a>, double <a href="#Greediness"><i>Greediness</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Angle"><i>Angle</i></a>, HTuple* <a href="#ScaleR"><i>ScaleR</i></a>, HTuple* <a href="#ScaleC"><i>ScaleC</i></a>, HTuple* <a href="#Score"><i>Score</i></a>, HTuple* <a href="#Model"><i>Model</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>FindAnisoShapeModels</b>(<a href="HObject.html">HObject</a> <a href="#Image"><i>image</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ModelIDs"><i>modelIDs</i></a>, <a href="HTuple.html">HTuple</a> <a href="#AngleStart"><i>angleStart</i></a>, <a href="HTuple.html">HTuple</a> <a href="#AngleExtent"><i>angleExtent</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleRMin"><i>scaleRMin</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleRMax"><i>scaleRMax</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleCMin"><i>scaleCMin</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleCMax"><i>scaleCMax</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MinScore"><i>minScore</i></a>, <a href="HTuple.html">HTuple</a> <a href="#NumMatches"><i>numMatches</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MaxOverlap"><i>maxOverlap</i></a>, <a href="HTuple.html">HTuple</a> <a href="#SubPixel"><i>subPixel</i></a>, <a href="HTuple.html">HTuple</a> <a href="#NumLevels"><i>numLevels</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Greediness"><i>greediness</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Row"><i>row</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Column"><i>column</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Angle"><i>angle</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ScaleR"><i>scaleR</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ScaleC"><i>scaleC</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Score"><i>score</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Model"><i>model</i></a>)</code></p>
<p>
<code>static void <a href="HShapeModel.html">HShapeModel</a>.<b>FindAnisoShapeModels</b>(<a href="HImage.html">HImage</a> <a href="#Image"><i>image</i></a>, <a href="HShapeModel.html">HShapeModel[]</a> <a href="#ModelIDs"><i>modelIDs</i></a>, <a href="HTuple.html">HTuple</a> <a href="#AngleStart"><i>angleStart</i></a>, <a href="HTuple.html">HTuple</a> <a href="#AngleExtent"><i>angleExtent</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleRMin"><i>scaleRMin</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleRMax"><i>scaleRMax</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleCMin"><i>scaleCMin</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleCMax"><i>scaleCMax</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MinScore"><i>minScore</i></a>, <a href="HTuple.html">HTuple</a> <a href="#NumMatches"><i>numMatches</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MaxOverlap"><i>maxOverlap</i></a>, <a href="HTuple.html">HTuple</a> <a href="#SubPixel"><i>subPixel</i></a>, <a href="HTuple.html">HTuple</a> <a href="#NumLevels"><i>numLevels</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Greediness"><i>greediness</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Row"><i>row</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Column"><i>column</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Angle"><i>angle</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ScaleR"><i>scaleR</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ScaleC"><i>scaleC</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Score"><i>score</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Model"><i>model</i></a>)</code></p>
<p>
<code>void <a href="HShapeModel.html">HShapeModel</a>.<b>FindAnisoShapeModels</b>(<a href="HImage.html">HImage</a> <a href="#Image"><i>image</i></a>, double <a href="#AngleStart"><i>angleStart</i></a>, double <a href="#AngleExtent"><i>angleExtent</i></a>, double <a href="#ScaleRMin"><i>scaleRMin</i></a>, double <a href="#ScaleRMax"><i>scaleRMax</i></a>, double <a href="#ScaleCMin"><i>scaleCMin</i></a>, double <a href="#ScaleCMax"><i>scaleCMax</i></a>, double <a href="#MinScore"><i>minScore</i></a>, int <a href="#NumMatches"><i>numMatches</i></a>, double <a href="#MaxOverlap"><i>maxOverlap</i></a>, string <a href="#SubPixel"><i>subPixel</i></a>, int <a href="#NumLevels"><i>numLevels</i></a>, double <a href="#Greediness"><i>greediness</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Row"><i>row</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Column"><i>column</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Angle"><i>angle</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ScaleR"><i>scaleR</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ScaleC"><i>scaleC</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Score"><i>score</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Model"><i>model</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>.<b>FindAnisoShapeModels</b>(<a href="HShapeModel.html">HShapeModel[]</a> <a href="#ModelIDs"><i>modelIDs</i></a>, <a href="HTuple.html">HTuple</a> <a href="#AngleStart"><i>angleStart</i></a>, <a href="HTuple.html">HTuple</a> <a href="#AngleExtent"><i>angleExtent</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleRMin"><i>scaleRMin</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleRMax"><i>scaleRMax</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleCMin"><i>scaleCMin</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleCMax"><i>scaleCMax</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MinScore"><i>minScore</i></a>, <a href="HTuple.html">HTuple</a> <a href="#NumMatches"><i>numMatches</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MaxOverlap"><i>maxOverlap</i></a>, <a href="HTuple.html">HTuple</a> <a href="#SubPixel"><i>subPixel</i></a>, <a href="HTuple.html">HTuple</a> <a href="#NumLevels"><i>numLevels</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Greediness"><i>greediness</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Row"><i>row</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Column"><i>column</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Angle"><i>angle</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ScaleR"><i>scaleR</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ScaleC"><i>scaleC</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Score"><i>score</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Model"><i>model</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>.<b>FindAnisoShapeModels</b>(<a href="HShapeModel.html">HShapeModel</a> <a href="#ModelIDs"><i>modelIDs</i></a>, double <a href="#AngleStart"><i>angleStart</i></a>, double <a href="#AngleExtent"><i>angleExtent</i></a>, double <a href="#ScaleRMin"><i>scaleRMin</i></a>, double <a href="#ScaleRMax"><i>scaleRMax</i></a>, double <a href="#ScaleCMin"><i>scaleCMin</i></a>, double <a href="#ScaleCMax"><i>scaleCMax</i></a>, double <a href="#MinScore"><i>minScore</i></a>, int <a href="#NumMatches"><i>numMatches</i></a>, double <a href="#MaxOverlap"><i>maxOverlap</i></a>, string <a href="#SubPixel"><i>subPixel</i></a>, int <a href="#NumLevels"><i>numLevels</i></a>, double <a href="#Greediness"><i>greediness</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Row"><i>row</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Column"><i>column</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Angle"><i>angle</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ScaleR"><i>scaleR</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ScaleC"><i>scaleC</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Score"><i>score</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Model"><i>model</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>find_aniso_shape_models</b>(<a href="#Image"><i>image</i></a>: HObject, <a href="#ModelIDs"><i>model_ids</i></a>: MaybeSequence[HHandle], <a href="#AngleStart"><i>angle_start</i></a>: MaybeSequence[float], <a href="#AngleExtent"><i>angle_extent</i></a>: MaybeSequence[float], <a href="#ScaleRMin"><i>scale_rmin</i></a>: MaybeSequence[float], <a href="#ScaleRMax"><i>scale_rmax</i></a>: MaybeSequence[float], <a href="#ScaleCMin"><i>scale_cmin</i></a>: MaybeSequence[float], <a href="#ScaleCMax"><i>scale_cmax</i></a>: MaybeSequence[float], <a href="#MinScore"><i>min_score</i></a>: MaybeSequence[float], <a href="#NumMatches"><i>num_matches</i></a>: MaybeSequence[int], <a href="#MaxOverlap"><i>max_overlap</i></a>: MaybeSequence[float], <a href="#SubPixel"><i>sub_pixel</i></a>: MaybeSequence[str], <a href="#NumLevels"><i>num_levels</i></a>: MaybeSequence[int], <a href="#Greediness"><i>greediness</i></a>: MaybeSequence[float]) -&gt; Tuple[Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[int]]</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">find_aniso_shape_models</span><span data-if="c" style="display:none">find_aniso_shape_models</span><span data-if="cpp" style="display:none">FindAnisoShapeModels</span><span data-if="com" style="display:none">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none">FindAnisoShapeModels</span><span data-if="python" style="display:none">find_aniso_shape_models</span></code> finds the best
<a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> instances of the anisotropically scaled
shape models that are passed in <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a> in the input image
<a href="#Image"><i><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></i></a>.  The models must have been created previously by
calling <a href="create_aniso_shape_model.html"><code><span data-if="hdevelop" style="display:inline">create_aniso_shape_model</span><span data-if="c" style="display:none">create_aniso_shape_model</span><span data-if="cpp" style="display:none">CreateAnisoShapeModel</span><span data-if="com" style="display:none">CreateAnisoShapeModel</span><span data-if="dotnet" style="display:none">CreateAnisoShapeModel</span><span data-if="python" style="display:none">create_aniso_shape_model</span></code></a> or
<a href="read_shape_model.html"><code><span data-if="hdevelop" style="display:inline">read_shape_model</span><span data-if="c" style="display:none">read_shape_model</span><span data-if="cpp" style="display:none">ReadShapeModel</span><span data-if="com" style="display:none">ReadShapeModel</span><span data-if="dotnet" style="display:none">ReadShapeModel</span><span data-if="python" style="display:none">read_shape_model</span></code></a>. In contrast to <a href="find_aniso_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_aniso_shape_model</span><span data-if="c" style="display:none">find_aniso_shape_model</span><span data-if="cpp" style="display:none">FindAnisoShapeModel</span><span data-if="com" style="display:none">FindAnisoShapeModel</span><span data-if="dotnet" style="display:none">FindAnisoShapeModel</span><span data-if="python" style="display:none">find_aniso_shape_model</span></code></a>, multiple
models can be searched in the same image in one call.
</p>
<p>The position, rotation, and scale in the row and column direction of
the found instances of the model are returned in <a href="#Row"><i><code><span data-if="hdevelop" style="display:inline">Row</span><span data-if="c" style="display:none">Row</span><span data-if="cpp" style="display:none">Row</span><span data-if="com" style="display:none">Row</span><span data-if="dotnet" style="display:none">row</span><span data-if="python" style="display:none">row</span></code></i></a>,
<a href="#Column"><i><code><span data-if="hdevelop" style="display:inline">Column</span><span data-if="c" style="display:none">Column</span><span data-if="cpp" style="display:none">Column</span><span data-if="com" style="display:none">Column</span><span data-if="dotnet" style="display:none">column</span><span data-if="python" style="display:none">column</span></code></i></a>, <a href="#Angle"><i><code><span data-if="hdevelop" style="display:inline">Angle</span><span data-if="c" style="display:none">Angle</span><span data-if="cpp" style="display:none">Angle</span><span data-if="com" style="display:none">Angle</span><span data-if="dotnet" style="display:none">angle</span><span data-if="python" style="display:none">angle</span></code></i></a>, <a href="#ScaleR"><i><code><span data-if="hdevelop" style="display:inline">ScaleR</span><span data-if="c" style="display:none">ScaleR</span><span data-if="cpp" style="display:none">ScaleR</span><span data-if="com" style="display:none">ScaleR</span><span data-if="dotnet" style="display:none">scaleR</span><span data-if="python" style="display:none">scale_r</span></code></i></a>, and
<a href="#ScaleC"><i><code><span data-if="hdevelop" style="display:inline">ScaleC</span><span data-if="c" style="display:none">ScaleC</span><span data-if="cpp" style="display:none">ScaleC</span><span data-if="com" style="display:none">ScaleC</span><span data-if="dotnet" style="display:none">scaleC</span><span data-if="python" style="display:none">scale_c</span></code></i></a>. The score of each found instance is returned in
<a href="#Score"><i><code><span data-if="hdevelop" style="display:inline">Score</span><span data-if="c" style="display:none">Score</span><span data-if="cpp" style="display:none">Score</span><span data-if="com" style="display:none">Score</span><span data-if="dotnet" style="display:none">score</span><span data-if="python" style="display:none">score</span></code></i></a>. The type of the found instances of the models is returned in
<a href="#Model"><i><code><span data-if="hdevelop" style="display:inline">Model</span><span data-if="c" style="display:none">Model</span><span data-if="cpp" style="display:none">Model</span><span data-if="com" style="display:none">Model</span><span data-if="dotnet" style="display:none">model</span><span data-if="python" style="display:none">model</span></code></i></a>. For details see respective sections below.
</p>
<h3>Characteristics of the parameter semantics</h3>
<p>Compared to <a href="find_aniso_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_aniso_shape_model</span><span data-if="c" style="display:none">find_aniso_shape_model</span><span data-if="cpp" style="display:none">FindAnisoShapeModel</span><span data-if="com" style="display:none">FindAnisoShapeModel</span><span data-if="dotnet" style="display:none">FindAnisoShapeModel</span><span data-if="python" style="display:none">find_aniso_shape_model</span></code></a>, the
semantics of all input parameters have changed to some extent. All input
parameters must either contain one element, in which case the
parameter is used for all models, or must contain the same number of
elements as <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>, in which case each parameter element
refers to the corresponding element in <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>.
(<a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a> may also contain either two or twice the number
of elements as <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>.)
More details can be found
below in the sections containing information for the respective parameters.
Note that a call to <code><span data-if="hdevelop" style="display:inline">find_aniso_shape_models</span><span data-if="c" style="display:none">find_aniso_shape_models</span><span data-if="cpp" style="display:none">FindAnisoShapeModels</span><span data-if="com" style="display:none">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none">FindAnisoShapeModels</span><span data-if="python" style="display:none">find_aniso_shape_models</span></code> with
multiple values for <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>, <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> and
<a href="#MaxOverlap"><i><code><span data-if="hdevelop" style="display:inline">MaxOverlap</span><span data-if="c" style="display:none">MaxOverlap</span><span data-if="cpp" style="display:none">MaxOverlap</span><span data-if="com" style="display:none">MaxOverlap</span><span data-if="dotnet" style="display:none">maxOverlap</span><span data-if="python" style="display:none">max_overlap</span></code></i></a> has the same effect as multiple independent
calls to <a href="find_aniso_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_aniso_shape_model</span><span data-if="c" style="display:none">find_aniso_shape_model</span><span data-if="cpp" style="display:none">FindAnisoShapeModel</span><span data-if="com" style="display:none">FindAnisoShapeModel</span><span data-if="dotnet" style="display:none">FindAnisoShapeModel</span><span data-if="python" style="display:none">find_aniso_shape_model</span></code></a> with the respective
parameters. However, a single call to
<code><span data-if="hdevelop" style="display:inline">find_aniso_shape_models</span><span data-if="c" style="display:none">find_aniso_shape_models</span><span data-if="cpp" style="display:none">FindAnisoShapeModels</span><span data-if="com" style="display:none">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none">FindAnisoShapeModels</span><span data-if="python" style="display:none">find_aniso_shape_models</span></code> is considerably more efficient.
</p>
<h3>Input parameters in detail</h3>
<dl class="generic">

<dt><b><a href="#Image"><i><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></i></a> and its domain:</b></dt>
<dd>
<p>

The domain of the <a href="#Image"><i><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></i></a> determines the search space
for the reference point of the model, i.e., for the center of
gravity of the domain (region) of the image that was used to create
the shape model with <a href="create_aniso_shape_model.html"><code><span data-if="hdevelop" style="display:inline">create_aniso_shape_model</span><span data-if="c" style="display:none">create_aniso_shape_model</span><span data-if="cpp" style="display:none">CreateAnisoShapeModel</span><span data-if="com" style="display:none">CreateAnisoShapeModel</span><span data-if="dotnet" style="display:none">CreateAnisoShapeModel</span><span data-if="python" style="display:none">create_aniso_shape_model</span></code></a>. A different
origin set with <a href="set_shape_model_origin.html"><code><span data-if="hdevelop" style="display:inline">set_shape_model_origin</span><span data-if="c" style="display:none">set_shape_model_origin</span><span data-if="cpp" style="display:none">SetShapeModelOrigin</span><span data-if="com" style="display:none">SetShapeModelOrigin</span><span data-if="dotnet" style="display:none">SetShapeModelOrigin</span><span data-if="python" style="display:none">set_shape_model_origin</span></code></a> is not taken into
account.  The model is searched within those points of the domain of
the image, in which the model lies completely within the image.
This means that the model will not be found if it extends beyond the
borders of the image, even if it would achieve a score greater than
<a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> (see below). Note that, if for a certain pyramid
level the model touches the image border, it might not be found
even if it lies completely within the original image.
As a rule of thumb, the model might not be found if its distance to
an image border falls below  <span title="1" style="vertical-align:-0.110416em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="5.93567em" height="0.970833em" viewBox="0 0 94.970764 15.533325">
<!-- Original BoundingBox: -47.485382 -7.766663 47.485382 7.766663 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_76">
      <path style="fill-rule: evenodd;" d="M412.000000 -601.000000C421.000000 -637.000000,424.000000 -647.000000,516.000000 -647.000000C547.000000 -647.000000,557.000000 -647.000000,557.000000 -669.000000C557.000000 -670.000000,556.000000 -683.000000,540.000000 -683.000000C517.000000 -683.000000,490.000000 -681.000000,466.000000 -680.000000C441.000000 -679.000000,411.000000 -679.000000,386.000000 -679.000000C365.000000 -679.000000,338.000000 -680.000000,317.000000 -680.000000C296.000000 -680.000000,272.000000 -683.000000,252.000000 -683.000000C246.000000 -683.000000,231.000000 -683.000000,231.000000 -661.000000C231.000000 -647.000000,243.000000 -647.000000,263.000000 -647.000000C264.000000 -647.000000,283.000000 -647.000000,301.000000 -645.000000C322.000000 -643.000000,324.000000 -641.000000,324.000000 -631.000000C324.000000 -629.000000,324.000000 -624.000000,320.000000 -609.000000L187.000000 -78.000000C178.000000 -44.000000,176.000000 -36.000000,99.000000 -36.000000C82.000000 -36.000000,69.000000 -36.000000,69.000000 -15.000000C69.000000 -0.000000,81.000000 -0.000000,99.000000 -0.000000L602.000000 -0.000000C627.000000 -0.000000,628.000000 -1.000000,636.000000 -20.000000C646.000000 -47.000000,721.000000 -241.000000,721.000000 -249.000000C721.000000 -252.000000,719.000000 -263.000000,704.000000 -263.000000C692.000000 -263.000000,690.000000 -258.000000,684.000000 -242.000000C646.000000 -147.000000,602.000000 -36.000000,419.000000 -36.000000L306.000000 -36.000000C275.000000 -36.000000,274.000000 -37.000000,274.000000 -46.000000C274.000000 -47.000000,274.000000 -52.000000,278.000000 -67.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_78">
      <path style="fill-rule: evenodd;" d="M834.000000 -574.000000C844.000000 -612.000000,860.000000 -645.000000,940.000000 -647.000000C945.000000 -647.000000,960.000000 -648.000000,960.000000 -669.000000C960.000000 -675.000000,955.000000 -683.000000,945.000000 -683.000000L841.000000 -683.000000L912.000000 -683.000000L875.000000 -679.000000L841.000000 -679.000000L817.000000 -679.000000L759.000000 -683.000000L735.000000 -683.000000C730.000000 -683.000000,715.000000 -683.000000,715.000000 -661.000000C715.000000 -648.000000,728.000000 -647.000000,737.000000 -647.000000C784.000000 -646.000000,801.000000 -631.000000,801.000000 -606.000000C801.000000 -598.000000,800.000000 -593.000000,797.000000 -582.000000L688.000000 -146.000000L434.000000 -666.000000C426.000000 -683.000000,424.000000 -683.000000,400.000000 -683.000000L263.000000 -683.000000C244.000000 -683.000000,231.000000 -683.000000,231.000000 -661.000000C231.000000 -647.000000,243.000000 -647.000000,264.000000 -647.000000C285.000000 -647.000000,307.000000 -646.000000,328.000000 -642.000000L194.000000 -107.000000C185.000000 -69.000000,168.000000 -39.000000,90.000000 -36.000000C83.000000 -36.000000,69.000000 -35.000000,69.000000 -15.000000C69.000000 -4.000000,77.000000 -0.000000,84.000000 -0.000000L188.000000 -0.000000L117.000000 -0.000000L154.000000 -4.000000L188.000000 -4.000000L212.000000 -4.000000L270.000000 -0.000000L294.000000 -0.000000C304.000000 -0.000000,314.000000 -5.000000,314.000000 -21.000000C314.000000 -35.000000,302.000000 -36.000000,291.000000 -36.000000C228.000000 -38.000000,228.000000 -64.000000,228.000000 -78.000000C228.000000 -82.000000,228.000000 -87.000000,232.000000 -103.000000L360.000000 -615.000000L652.000000 -17.000000C660.000000 -1.000000,664.000000 -0.000000,674.000000 -0.000000C690.000000 -0.000000,690.000000 -3.000000,695.000000 -21.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_101">
      <path style="fill-rule: evenodd;" d="M224.000000 -228.000000C252.000000 -228.000000,331.000000 -230.000000,385.000000 -249.000000C459.000000 -275.000000,473.000000 -323.000000,473.000000 -353.000000C473.000000 -408.000000,418.000000 -441.000000,349.000000 -441.000000C229.000000 -441.000000,67.000000 -349.000000,67.000000 -178.000000C67.000000 -77.000000,130.000000 10.000000,247.000000 10.000000C416.000000 10.000000,495.000000 -89.000000,495.000000 -103.000000C495.000000 -109.000000,486.000000 -120.000000,478.000000 -120.000000C472.000000 -120.000000,470.000000 -118.000000,462.000000 -110.000000C384.000000 -18.000000,267.000000 -18.000000,249.000000 -18.000000C189.000000 -18.000000,149.000000 -58.000000,149.000000 -139.000000C149.000000 -153.000000,149.000000 -173.000000,161.000000 -228.000000M169.000000 -256.000000C210.000000 -401.000000,321.000000 -413.000000,349.000000 -413.000000C393.000000 -413.000000,430.000000 -391.000000,430.000000 -353.000000C430.000000 -256.000000,261.000000 -256.000000,218.000000 -256.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_108">
      <path style="fill-rule: evenodd;" d="M282.000000 -664.000000C283.000000 -666.000000,286.000000 -679.000000,286.000000 -680.000000C286.000000 -685.000000,282.000000 -694.000000,270.000000 -694.000000C250.000000 -694.000000,167.000000 -686.000000,142.000000 -684.000000C135.000000 -683.000000,121.000000 -682.000000,121.000000 -661.000000C121.000000 -647.000000,135.000000 -647.000000,146.000000 -647.000000C194.000000 -647.000000,194.000000 -640.000000,194.000000 -632.000000C194.000000 -625.000000,192.000000 -619.000000,190.000000 -610.000000L66.000000 -116.000000C63.000000 -106.000000,62.000000 -95.000000,62.000000 -85.000000C62.000000 -21.000000,119.000000 10.000000,167.000000 10.000000C191.000000 10.000000,221.000000 2.000000,247.000000 -43.000000C268.000000 -80.000000,282.000000 -139.000000,282.000000 -143.000000C282.000000 -156.000000,269.000000 -156.000000,266.000000 -156.000000C252.000000 -156.000000,250.000000 -150.000000,246.000000 -132.000000C233.000000 -82.000000,214.000000 -18.000000,171.000000 -18.000000C144.000000 -18.000000,137.000000 -43.000000,137.000000 -67.000000C137.000000 -78.000000,140.000000 -97.000000,143.000000 -108.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_109">
      <path style="fill-rule: evenodd;" d="M434.000000 -81.000000C429.000000 -61.000000,420.000000 -27.000000,420.000000 -22.000000C420.000000 -0.000000,438.000000 10.000000,454.000000 10.000000C472.000000 10.000000,488.000000 -3.000000,493.000000 -12.000000C498.000000 -21.000000,506.000000 -53.000000,511.000000 -74.000000C516.000000 -93.000000,527.000000 -139.000000,533.000000 -164.000000C539.000000 -186.000000,545.000000 -208.000000,550.000000 -231.000000C561.000000 -274.000000,561.000000 -276.000000,581.000000 -307.000000C613.000000 -356.000000,663.000000 -413.000000,741.000000 -413.000000C797.000000 -413.000000,800.000000 -367.000000,800.000000 -343.000000C800.000000 -283.000000,757.000000 -172.000000,741.000000 -130.000000C730.000000 -102.000000,726.000000 -93.000000,726.000000 -76.000000C726.000000 -23.000000,770.000000 10.000000,821.000000 10.000000C921.000000 10.000000,965.000000 -128.000000,965.000000 -143.000000C965.000000 -156.000000,952.000000 -156.000000,949.000000 -156.000000C935.000000 -156.000000,934.000000 -150.000000,930.000000 -139.000000C907.000000 -59.000000,864.000000 -18.000000,824.000000 -18.000000C803.000000 -18.000000,799.000000 -32.000000,799.000000 -53.000000C799.000000 -76.000000,804.000000 -89.000000,822.000000 -134.000000C834.000000 -165.000000,875.000000 -271.000000,875.000000 -327.000000C875.000000 -343.000000,875.000000 -385.000000,838.000000 -414.000000C821.000000 -427.000000,792.000000 -441.000000,745.000000 -441.000000C655.000000 -441.000000,600.000000 -382.000000,568.000000 -340.000000C560.000000 -425.000000,489.000000 -441.000000,438.000000 -441.000000C355.000000 -441.000000,299.000000 -390.000000,269.000000 -350.000000C262.000000 -419.000000,203.000000 -441.000000,162.000000 -441.000000C119.000000 -441.000000,96.000000 -410.000000,83.000000 -387.000000C61.000000 -350.000000,47.000000 -293.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -278.000000,86.000000 -305.000000C101.000000 -364.000000,120.000000 -413.000000,159.000000 -413.000000C185.000000 -413.000000,192.000000 -391.000000,192.000000 -364.000000C192.000000 -345.000000,183.000000 -308.000000,176.000000 -281.000000C169.000000 -254.000000,159.000000 -213.000000,154.000000 -191.000000L122.000000 -63.000000C118.000000 -50.000000,112.000000 -25.000000,112.000000 -22.000000C112.000000 -0.000000,130.000000 10.000000,146.000000 10.000000C164.000000 10.000000,180.000000 -3.000000,185.000000 -12.000000C190.000000 -21.000000,198.000000 -53.000000,203.000000 -74.000000C208.000000 -93.000000,219.000000 -139.000000,225.000000 -164.000000C231.000000 -186.000000,237.000000 -208.000000,242.000000 -231.000000C253.000000 -272.000000,255.000000 -280.000000,284.000000 -321.000000C312.000000 -361.000000,359.000000 -413.000000,434.000000 -413.000000C492.000000 -413.000000,493.000000 -362.000000,493.000000 -343.000000C493.000000 -318.000000,490.000000 -305.000000,476.000000 -249.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_115">
      <path style="fill-rule: evenodd;" d="M431.000000 -376.000000C405.000000 -370.000000,389.000000 -349.000000,389.000000 -329.000000C389.000000 -306.000000,409.000000 -297.000000,422.000000 -297.000000C432.000000 -297.000000,470.000000 -303.000000,470.000000 -354.000000C470.000000 -419.000000,398.000000 -441.000000,337.000000 -441.000000C181.000000 -441.000000,153.000000 -326.000000,153.000000 -295.000000C153.000000 -258.000000,174.000000 -234.000000,188.000000 -222.000000C214.000000 -202.000000,232.000000 -198.000000,301.000000 -186.000000C322.000000 -182.000000,386.000000 -170.000000,386.000000 -120.000000C386.000000 -103.000000,375.000000 -65.000000,333.000000 -40.000000C294.000000 -18.000000,245.000000 -18.000000,233.000000 -18.000000C193.000000 -18.000000,136.000000 -27.000000,113.000000 -60.000000C146.000000 -64.000000,168.000000 -89.000000,168.000000 -117.000000C168.000000 -142.000000,150.000000 -154.000000,129.000000 -154.000000C100.000000 -154.000000,71.000000 -131.000000,71.000000 -87.000000C71.000000 -27.000000,135.000000 10.000000,232.000000 10.000000C416.000000 10.000000,450.000000 -116.000000,450.000000 -155.000000C450.000000 -247.000000,349.000000 -265.000000,312.000000 -272.000000C303.000000 -274.000000,278.000000 -278.000000,272.000000 -280.000000C235.000000 -287.000000,217.000000 -308.000000,217.000000 -330.000000C217.000000 -353.000000,235.000000 -380.000000,257.000000 -394.000000C284.000000 -411.000000,319.000000 -413.000000,336.000000 -413.000000C357.000000 -413.000000,409.000000 -410.000000,431.000000 -376.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_117">
      <path style="fill-rule: evenodd;" d="M423.000000 -162.000000C418.000000 -142.000000,409.000000 -104.000000,407.000000 -103.000000C388.000000 -72.000000,348.000000 -18.000000,286.000000 -18.000000C217.000000 -18.000000,217.000000 -83.000000,217.000000 -101.000000C217.000000 -160.000000,245.000000 -231.000000,273.000000 -304.000000C281.000000 -324.000000,287.000000 -339.000000,287.000000 -355.000000C287.000000 -407.000000,243.000000 -441.000000,192.000000 -441.000000C92.000000 -441.000000,47.000000 -304.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -280.000000,82.000000 -291.000000C106.000000 -373.000000,150.000000 -413.000000,189.000000 -413.000000C206.000000 -413.000000,214.000000 -402.000000,214.000000 -378.000000C214.000000 -355.000000,206.000000 -334.000000,196.000000 -311.000000C142.000000 -173.000000,142.000000 -144.000000,142.000000 -117.000000C142.000000 -100.000000,142.000000 -54.000000,179.000000 -22.000000C208.000000 2.000000,247.000000 10.000000,282.000000 10.000000C345.000000 10.000000,379.000000 -24.000000,412.000000 -56.000000C434.000000 8.000000,501.000000 10.000000,513.000000 10.000000C547.000000 10.000000,573.000000 -10.000000,592.000000 -43.000000C614.000000 -82.000000,628.000000 -140.000000,628.000000 -143.000000C628.000000 -156.000000,614.000000 -156.000000,611.000000 -156.000000C597.000000 -156.000000,596.000000 -152.000000,589.000000 -125.000000C577.000000 -78.000000,558.000000 -18.000000,516.000000 -18.000000C490.000000 -18.000000,483.000000 -41.000000,483.000000 -67.000000C483.000000 -84.000000,491.000000 -120.000000,498.000000 -146.000000C505.000000 -173.000000,515.000000 -214.000000,520.000000 -236.000000L543.000000 -325.000000C549.000000 -350.000000,560.000000 -394.000000,560.000000 -399.000000C560.000000 -419.000000,544.000000 -431.000000,527.000000 -431.000000C490.000000 -431.000000,483.000000 -402.000000,475.000000 -370.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_118">
      <path style="fill-rule: evenodd;" d="M534.000000 -363.000000C534.000000 -441.000000,487.000000 -442.000000,484.000000 -442.000000C458.000000 -442.000000,430.000000 -415.000000,430.000000 -389.000000C430.000000 -372.000000,440.000000 -364.000000,447.000000 -358.000000C464.000000 -344.000000,484.000000 -318.000000,484.000000 -278.000000C484.000000 -233.000000,418.000000 -18.000000,299.000000 -18.000000C218.000000 -18.000000,218.000000 -90.000000,218.000000 -107.000000C218.000000 -153.000000,236.000000 -209.000000,273.000000 -302.000000C281.000000 -323.000000,287.000000 -338.000000,287.000000 -355.000000C287.000000 -407.000000,243.000000 -441.000000,192.000000 -441.000000C92.000000 -441.000000,47.000000 -304.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -280.000000,82.000000 -291.000000C106.000000 -373.000000,149.000000 -413.000000,189.000000 -413.000000C206.000000 -413.000000,214.000000 -402.000000,214.000000 -378.000000C214.000000 -355.000000,206.000000 -334.000000,196.000000 -311.000000C153.000000 -200.000000,142.000000 -157.000000,142.000000 -121.000000C142.000000 -22.000000,220.000000 10.000000,296.000000 10.000000C464.000000 10.000000,534.000000 -281.000000,534.000000 -363.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_50">
      <path style="fill-rule: evenodd;" d="M127.000000 -77.000000L233.000000 -180.000000C389.000000 -318.000000,449.000000 -372.000000,449.000000 -472.000000C449.000000 -586.000000,359.000000 -666.000000,237.000000 -666.000000C124.000000 -666.000000,50.000000 -574.000000,50.000000 -485.000000C50.000000 -429.000000,100.000000 -429.000000,103.000000 -429.000000C120.000000 -429.000000,155.000000 -441.000000,155.000000 -482.000000C155.000000 -508.000000,137.000000 -534.000000,102.000000 -534.000000C94.000000 -534.000000,92.000000 -534.000000,89.000000 -533.000000C112.000000 -598.000000,166.000000 -635.000000,224.000000 -635.000000C315.000000 -635.000000,358.000000 -554.000000,358.000000 -472.000000C358.000000 -392.000000,308.000000 -313.000000,253.000000 -251.000000L61.000000 -37.000000C50.000000 -26.000000,50.000000 -24.000000,50.000000 -0.000000L421.000000 -0.000000L449.000000 -174.000000L424.000000 -174.000000C419.000000 -144.000000,412.000000 -100.000000,402.000000 -85.000000C395.000000 -77.000000,329.000000 -77.000000,307.000000 -77.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmsy7_0">
      <path style="fill-rule: evenodd;" d="M744.000000 -226.000000C760.000000 -226.000000,784.000000 -226.000000,784.000000 -250.000000C784.000000 -275.000000,761.000000 -275.000000,744.000000 -275.000000L148.000000 -275.000000C132.000000 -275.000000,108.000000 -275.000000,108.000000 -251.000000C108.000000 -226.000000,131.000000 -226.000000,148.000000 -226.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_49">
      <path style="fill-rule: evenodd;" d="M335.000000 -636.000000C335.000000 -663.000000,333.000000 -664.000000,305.000000 -664.000000C241.000000 -601.000000,150.000000 -600.000000,109.000000 -600.000000L109.000000 -564.000000C133.000000 -564.000000,199.000000 -564.000000,254.000000 -592.000000L254.000000 -82.000000C254.000000 -49.000000,254.000000 -36.000000,154.000000 -36.000000L116.000000 -36.000000L116.000000 -0.000000L294.000000 -0.000000L134.000000 -1.000000L257.000000 -4.000000L294.000000 -4.000000L325.000000 -4.000000L451.000000 -1.000000L473.000000 -0.000000L473.000000 -36.000000L435.000000 -36.000000C335.000000 -36.000000,335.000000 -49.000000,335.000000 -82.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.530609 13.766663)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_50"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.500732 7.981995)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_78"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,19.794067 7.981995)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_117"></use>
    <use xlink:href="#GLYPHcmmi7_109" x="4.728124"></use>
    <use xlink:href="#GLYPHcmmi7_76" x="11.824354"></use>
    <use xlink:href="#GLYPHcmmi7_101" x="17.310587"></use>
    <use xlink:href="#GLYPHcmmi7_118" x="21.104772"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,60.211472 7.981995)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_101"></use>
    <use xlink:href="#GLYPHcmmi7_108" x="3.794186"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,70.355209 7.981995)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_115"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,76.371719 7.981995)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy7_0"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,86.334305 7.981995)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr7_49"></use>
  </g>
</svg></span>.
This behavior can be changed with
<a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system('border_shape_models','true')</span><span data-if="c" style="display:none">set_system("border_shape_models","true")</span><span data-if="cpp" style="display:none">SetSystem("border_shape_models","true")</span><span data-if="com" style="display:none">SetSystem("border_shape_models","true")</span><span data-if="dotnet" style="display:none">SetSystem("border_shape_models","true")</span><span data-if="python" style="display:none">set_system("border_shape_models","true")</span></code></a> for all models or
with <a href="set_shape_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_shape_model_param(ModelID,'border_shape_models','true')</span><span data-if="c" style="display:none">set_shape_model_param(ModelID,"border_shape_models","true")</span><span data-if="cpp" style="display:none">SetShapeModelParam(ModelID,"border_shape_models","true")</span><span data-if="com" style="display:none">SetShapeModelParam(ModelID,"border_shape_models","true")</span><span data-if="dotnet" style="display:none">SetShapeModelParam(ModelID,"border_shape_models","true")</span><span data-if="python" style="display:none">set_shape_model_param(ModelID,"border_shape_models","true")</span></code></a>
for a specific model, which will cause
models that extend beyond the image border to be found if they
achieve a score greater than <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a>. Here, points lying
outside the image are regarded as being occluded, i.e., they lower
the score. It should be noted that the runtime of the search will
increase in this mode. Note further, that in rare cases, which occur
typically only for artificial images, the model might not be found
also if for certain pyramid levels the model touches the border
of the reduced domain. Then, it may help to enlarge the reduced
domain by <span title="2" style="vertical-align:-0.110416em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="5.93567em" height="0.970833em" viewBox="0 0 94.970764 15.533325">
<!-- Original BoundingBox: -47.485382 -7.766663 47.485382 7.766663 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_76">
      <path style="fill-rule: evenodd;" d="M412.000000 -601.000000C421.000000 -637.000000,424.000000 -647.000000,516.000000 -647.000000C547.000000 -647.000000,557.000000 -647.000000,557.000000 -669.000000C557.000000 -670.000000,556.000000 -683.000000,540.000000 -683.000000C517.000000 -683.000000,490.000000 -681.000000,466.000000 -680.000000C441.000000 -679.000000,411.000000 -679.000000,386.000000 -679.000000C365.000000 -679.000000,338.000000 -680.000000,317.000000 -680.000000C296.000000 -680.000000,272.000000 -683.000000,252.000000 -683.000000C246.000000 -683.000000,231.000000 -683.000000,231.000000 -661.000000C231.000000 -647.000000,243.000000 -647.000000,263.000000 -647.000000C264.000000 -647.000000,283.000000 -647.000000,301.000000 -645.000000C322.000000 -643.000000,324.000000 -641.000000,324.000000 -631.000000C324.000000 -629.000000,324.000000 -624.000000,320.000000 -609.000000L187.000000 -78.000000C178.000000 -44.000000,176.000000 -36.000000,99.000000 -36.000000C82.000000 -36.000000,69.000000 -36.000000,69.000000 -15.000000C69.000000 -0.000000,81.000000 -0.000000,99.000000 -0.000000L602.000000 -0.000000C627.000000 -0.000000,628.000000 -1.000000,636.000000 -20.000000C646.000000 -47.000000,721.000000 -241.000000,721.000000 -249.000000C721.000000 -252.000000,719.000000 -263.000000,704.000000 -263.000000C692.000000 -263.000000,690.000000 -258.000000,684.000000 -242.000000C646.000000 -147.000000,602.000000 -36.000000,419.000000 -36.000000L306.000000 -36.000000C275.000000 -36.000000,274.000000 -37.000000,274.000000 -46.000000C274.000000 -47.000000,274.000000 -52.000000,278.000000 -67.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_78">
      <path style="fill-rule: evenodd;" d="M834.000000 -574.000000C844.000000 -612.000000,860.000000 -645.000000,940.000000 -647.000000C945.000000 -647.000000,960.000000 -648.000000,960.000000 -669.000000C960.000000 -675.000000,955.000000 -683.000000,945.000000 -683.000000L841.000000 -683.000000L912.000000 -683.000000L875.000000 -679.000000L841.000000 -679.000000L817.000000 -679.000000L759.000000 -683.000000L735.000000 -683.000000C730.000000 -683.000000,715.000000 -683.000000,715.000000 -661.000000C715.000000 -648.000000,728.000000 -647.000000,737.000000 -647.000000C784.000000 -646.000000,801.000000 -631.000000,801.000000 -606.000000C801.000000 -598.000000,800.000000 -593.000000,797.000000 -582.000000L688.000000 -146.000000L434.000000 -666.000000C426.000000 -683.000000,424.000000 -683.000000,400.000000 -683.000000L263.000000 -683.000000C244.000000 -683.000000,231.000000 -683.000000,231.000000 -661.000000C231.000000 -647.000000,243.000000 -647.000000,264.000000 -647.000000C285.000000 -647.000000,307.000000 -646.000000,328.000000 -642.000000L194.000000 -107.000000C185.000000 -69.000000,168.000000 -39.000000,90.000000 -36.000000C83.000000 -36.000000,69.000000 -35.000000,69.000000 -15.000000C69.000000 -4.000000,77.000000 -0.000000,84.000000 -0.000000L188.000000 -0.000000L117.000000 -0.000000L154.000000 -4.000000L188.000000 -4.000000L212.000000 -4.000000L270.000000 -0.000000L294.000000 -0.000000C304.000000 -0.000000,314.000000 -5.000000,314.000000 -21.000000C314.000000 -35.000000,302.000000 -36.000000,291.000000 -36.000000C228.000000 -38.000000,228.000000 -64.000000,228.000000 -78.000000C228.000000 -82.000000,228.000000 -87.000000,232.000000 -103.000000L360.000000 -615.000000L652.000000 -17.000000C660.000000 -1.000000,664.000000 -0.000000,674.000000 -0.000000C690.000000 -0.000000,690.000000 -3.000000,695.000000 -21.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_101">
      <path style="fill-rule: evenodd;" d="M224.000000 -228.000000C252.000000 -228.000000,331.000000 -230.000000,385.000000 -249.000000C459.000000 -275.000000,473.000000 -323.000000,473.000000 -353.000000C473.000000 -408.000000,418.000000 -441.000000,349.000000 -441.000000C229.000000 -441.000000,67.000000 -349.000000,67.000000 -178.000000C67.000000 -77.000000,130.000000 10.000000,247.000000 10.000000C416.000000 10.000000,495.000000 -89.000000,495.000000 -103.000000C495.000000 -109.000000,486.000000 -120.000000,478.000000 -120.000000C472.000000 -120.000000,470.000000 -118.000000,462.000000 -110.000000C384.000000 -18.000000,267.000000 -18.000000,249.000000 -18.000000C189.000000 -18.000000,149.000000 -58.000000,149.000000 -139.000000C149.000000 -153.000000,149.000000 -173.000000,161.000000 -228.000000M169.000000 -256.000000C210.000000 -401.000000,321.000000 -413.000000,349.000000 -413.000000C393.000000 -413.000000,430.000000 -391.000000,430.000000 -353.000000C430.000000 -256.000000,261.000000 -256.000000,218.000000 -256.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_108">
      <path style="fill-rule: evenodd;" d="M282.000000 -664.000000C283.000000 -666.000000,286.000000 -679.000000,286.000000 -680.000000C286.000000 -685.000000,282.000000 -694.000000,270.000000 -694.000000C250.000000 -694.000000,167.000000 -686.000000,142.000000 -684.000000C135.000000 -683.000000,121.000000 -682.000000,121.000000 -661.000000C121.000000 -647.000000,135.000000 -647.000000,146.000000 -647.000000C194.000000 -647.000000,194.000000 -640.000000,194.000000 -632.000000C194.000000 -625.000000,192.000000 -619.000000,190.000000 -610.000000L66.000000 -116.000000C63.000000 -106.000000,62.000000 -95.000000,62.000000 -85.000000C62.000000 -21.000000,119.000000 10.000000,167.000000 10.000000C191.000000 10.000000,221.000000 2.000000,247.000000 -43.000000C268.000000 -80.000000,282.000000 -139.000000,282.000000 -143.000000C282.000000 -156.000000,269.000000 -156.000000,266.000000 -156.000000C252.000000 -156.000000,250.000000 -150.000000,246.000000 -132.000000C233.000000 -82.000000,214.000000 -18.000000,171.000000 -18.000000C144.000000 -18.000000,137.000000 -43.000000,137.000000 -67.000000C137.000000 -78.000000,140.000000 -97.000000,143.000000 -108.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_109">
      <path style="fill-rule: evenodd;" d="M434.000000 -81.000000C429.000000 -61.000000,420.000000 -27.000000,420.000000 -22.000000C420.000000 -0.000000,438.000000 10.000000,454.000000 10.000000C472.000000 10.000000,488.000000 -3.000000,493.000000 -12.000000C498.000000 -21.000000,506.000000 -53.000000,511.000000 -74.000000C516.000000 -93.000000,527.000000 -139.000000,533.000000 -164.000000C539.000000 -186.000000,545.000000 -208.000000,550.000000 -231.000000C561.000000 -274.000000,561.000000 -276.000000,581.000000 -307.000000C613.000000 -356.000000,663.000000 -413.000000,741.000000 -413.000000C797.000000 -413.000000,800.000000 -367.000000,800.000000 -343.000000C800.000000 -283.000000,757.000000 -172.000000,741.000000 -130.000000C730.000000 -102.000000,726.000000 -93.000000,726.000000 -76.000000C726.000000 -23.000000,770.000000 10.000000,821.000000 10.000000C921.000000 10.000000,965.000000 -128.000000,965.000000 -143.000000C965.000000 -156.000000,952.000000 -156.000000,949.000000 -156.000000C935.000000 -156.000000,934.000000 -150.000000,930.000000 -139.000000C907.000000 -59.000000,864.000000 -18.000000,824.000000 -18.000000C803.000000 -18.000000,799.000000 -32.000000,799.000000 -53.000000C799.000000 -76.000000,804.000000 -89.000000,822.000000 -134.000000C834.000000 -165.000000,875.000000 -271.000000,875.000000 -327.000000C875.000000 -343.000000,875.000000 -385.000000,838.000000 -414.000000C821.000000 -427.000000,792.000000 -441.000000,745.000000 -441.000000C655.000000 -441.000000,600.000000 -382.000000,568.000000 -340.000000C560.000000 -425.000000,489.000000 -441.000000,438.000000 -441.000000C355.000000 -441.000000,299.000000 -390.000000,269.000000 -350.000000C262.000000 -419.000000,203.000000 -441.000000,162.000000 -441.000000C119.000000 -441.000000,96.000000 -410.000000,83.000000 -387.000000C61.000000 -350.000000,47.000000 -293.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -278.000000,86.000000 -305.000000C101.000000 -364.000000,120.000000 -413.000000,159.000000 -413.000000C185.000000 -413.000000,192.000000 -391.000000,192.000000 -364.000000C192.000000 -345.000000,183.000000 -308.000000,176.000000 -281.000000C169.000000 -254.000000,159.000000 -213.000000,154.000000 -191.000000L122.000000 -63.000000C118.000000 -50.000000,112.000000 -25.000000,112.000000 -22.000000C112.000000 -0.000000,130.000000 10.000000,146.000000 10.000000C164.000000 10.000000,180.000000 -3.000000,185.000000 -12.000000C190.000000 -21.000000,198.000000 -53.000000,203.000000 -74.000000C208.000000 -93.000000,219.000000 -139.000000,225.000000 -164.000000C231.000000 -186.000000,237.000000 -208.000000,242.000000 -231.000000C253.000000 -272.000000,255.000000 -280.000000,284.000000 -321.000000C312.000000 -361.000000,359.000000 -413.000000,434.000000 -413.000000C492.000000 -413.000000,493.000000 -362.000000,493.000000 -343.000000C493.000000 -318.000000,490.000000 -305.000000,476.000000 -249.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_115">
      <path style="fill-rule: evenodd;" d="M431.000000 -376.000000C405.000000 -370.000000,389.000000 -349.000000,389.000000 -329.000000C389.000000 -306.000000,409.000000 -297.000000,422.000000 -297.000000C432.000000 -297.000000,470.000000 -303.000000,470.000000 -354.000000C470.000000 -419.000000,398.000000 -441.000000,337.000000 -441.000000C181.000000 -441.000000,153.000000 -326.000000,153.000000 -295.000000C153.000000 -258.000000,174.000000 -234.000000,188.000000 -222.000000C214.000000 -202.000000,232.000000 -198.000000,301.000000 -186.000000C322.000000 -182.000000,386.000000 -170.000000,386.000000 -120.000000C386.000000 -103.000000,375.000000 -65.000000,333.000000 -40.000000C294.000000 -18.000000,245.000000 -18.000000,233.000000 -18.000000C193.000000 -18.000000,136.000000 -27.000000,113.000000 -60.000000C146.000000 -64.000000,168.000000 -89.000000,168.000000 -117.000000C168.000000 -142.000000,150.000000 -154.000000,129.000000 -154.000000C100.000000 -154.000000,71.000000 -131.000000,71.000000 -87.000000C71.000000 -27.000000,135.000000 10.000000,232.000000 10.000000C416.000000 10.000000,450.000000 -116.000000,450.000000 -155.000000C450.000000 -247.000000,349.000000 -265.000000,312.000000 -272.000000C303.000000 -274.000000,278.000000 -278.000000,272.000000 -280.000000C235.000000 -287.000000,217.000000 -308.000000,217.000000 -330.000000C217.000000 -353.000000,235.000000 -380.000000,257.000000 -394.000000C284.000000 -411.000000,319.000000 -413.000000,336.000000 -413.000000C357.000000 -413.000000,409.000000 -410.000000,431.000000 -376.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_117">
      <path style="fill-rule: evenodd;" d="M423.000000 -162.000000C418.000000 -142.000000,409.000000 -104.000000,407.000000 -103.000000C388.000000 -72.000000,348.000000 -18.000000,286.000000 -18.000000C217.000000 -18.000000,217.000000 -83.000000,217.000000 -101.000000C217.000000 -160.000000,245.000000 -231.000000,273.000000 -304.000000C281.000000 -324.000000,287.000000 -339.000000,287.000000 -355.000000C287.000000 -407.000000,243.000000 -441.000000,192.000000 -441.000000C92.000000 -441.000000,47.000000 -304.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -280.000000,82.000000 -291.000000C106.000000 -373.000000,150.000000 -413.000000,189.000000 -413.000000C206.000000 -413.000000,214.000000 -402.000000,214.000000 -378.000000C214.000000 -355.000000,206.000000 -334.000000,196.000000 -311.000000C142.000000 -173.000000,142.000000 -144.000000,142.000000 -117.000000C142.000000 -100.000000,142.000000 -54.000000,179.000000 -22.000000C208.000000 2.000000,247.000000 10.000000,282.000000 10.000000C345.000000 10.000000,379.000000 -24.000000,412.000000 -56.000000C434.000000 8.000000,501.000000 10.000000,513.000000 10.000000C547.000000 10.000000,573.000000 -10.000000,592.000000 -43.000000C614.000000 -82.000000,628.000000 -140.000000,628.000000 -143.000000C628.000000 -156.000000,614.000000 -156.000000,611.000000 -156.000000C597.000000 -156.000000,596.000000 -152.000000,589.000000 -125.000000C577.000000 -78.000000,558.000000 -18.000000,516.000000 -18.000000C490.000000 -18.000000,483.000000 -41.000000,483.000000 -67.000000C483.000000 -84.000000,491.000000 -120.000000,498.000000 -146.000000C505.000000 -173.000000,515.000000 -214.000000,520.000000 -236.000000L543.000000 -325.000000C549.000000 -350.000000,560.000000 -394.000000,560.000000 -399.000000C560.000000 -419.000000,544.000000 -431.000000,527.000000 -431.000000C490.000000 -431.000000,483.000000 -402.000000,475.000000 -370.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_118">
      <path style="fill-rule: evenodd;" d="M534.000000 -363.000000C534.000000 -441.000000,487.000000 -442.000000,484.000000 -442.000000C458.000000 -442.000000,430.000000 -415.000000,430.000000 -389.000000C430.000000 -372.000000,440.000000 -364.000000,447.000000 -358.000000C464.000000 -344.000000,484.000000 -318.000000,484.000000 -278.000000C484.000000 -233.000000,418.000000 -18.000000,299.000000 -18.000000C218.000000 -18.000000,218.000000 -90.000000,218.000000 -107.000000C218.000000 -153.000000,236.000000 -209.000000,273.000000 -302.000000C281.000000 -323.000000,287.000000 -338.000000,287.000000 -355.000000C287.000000 -407.000000,243.000000 -441.000000,192.000000 -441.000000C92.000000 -441.000000,47.000000 -304.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -280.000000,82.000000 -291.000000C106.000000 -373.000000,149.000000 -413.000000,189.000000 -413.000000C206.000000 -413.000000,214.000000 -402.000000,214.000000 -378.000000C214.000000 -355.000000,206.000000 -334.000000,196.000000 -311.000000C153.000000 -200.000000,142.000000 -157.000000,142.000000 -121.000000C142.000000 -22.000000,220.000000 10.000000,296.000000 10.000000C464.000000 10.000000,534.000000 -281.000000,534.000000 -363.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_50">
      <path style="fill-rule: evenodd;" d="M127.000000 -77.000000L233.000000 -180.000000C389.000000 -318.000000,449.000000 -372.000000,449.000000 -472.000000C449.000000 -586.000000,359.000000 -666.000000,237.000000 -666.000000C124.000000 -666.000000,50.000000 -574.000000,50.000000 -485.000000C50.000000 -429.000000,100.000000 -429.000000,103.000000 -429.000000C120.000000 -429.000000,155.000000 -441.000000,155.000000 -482.000000C155.000000 -508.000000,137.000000 -534.000000,102.000000 -534.000000C94.000000 -534.000000,92.000000 -534.000000,89.000000 -533.000000C112.000000 -598.000000,166.000000 -635.000000,224.000000 -635.000000C315.000000 -635.000000,358.000000 -554.000000,358.000000 -472.000000C358.000000 -392.000000,308.000000 -313.000000,253.000000 -251.000000L61.000000 -37.000000C50.000000 -26.000000,50.000000 -24.000000,50.000000 -0.000000L421.000000 -0.000000L449.000000 -174.000000L424.000000 -174.000000C419.000000 -144.000000,412.000000 -100.000000,402.000000 -85.000000C395.000000 -77.000000,329.000000 -77.000000,307.000000 -77.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmsy7_0">
      <path style="fill-rule: evenodd;" d="M744.000000 -226.000000C760.000000 -226.000000,784.000000 -226.000000,784.000000 -250.000000C784.000000 -275.000000,761.000000 -275.000000,744.000000 -275.000000L148.000000 -275.000000C132.000000 -275.000000,108.000000 -275.000000,108.000000 -251.000000C108.000000 -226.000000,131.000000 -226.000000,148.000000 -226.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_49">
      <path style="fill-rule: evenodd;" d="M335.000000 -636.000000C335.000000 -663.000000,333.000000 -664.000000,305.000000 -664.000000C241.000000 -601.000000,150.000000 -600.000000,109.000000 -600.000000L109.000000 -564.000000C133.000000 -564.000000,199.000000 -564.000000,254.000000 -592.000000L254.000000 -82.000000C254.000000 -49.000000,254.000000 -36.000000,154.000000 -36.000000L116.000000 -36.000000L116.000000 -0.000000L294.000000 -0.000000L134.000000 -1.000000L257.000000 -4.000000L294.000000 -4.000000L325.000000 -4.000000L451.000000 -1.000000L473.000000 -0.000000L473.000000 -36.000000L435.000000 -36.000000C335.000000 -36.000000,335.000000 -49.000000,335.000000 -82.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.530609 13.766663)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_50"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.500732 7.981995)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_78"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,19.794067 7.981995)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_117"></use>
    <use xlink:href="#GLYPHcmmi7_109" x="4.728124"></use>
    <use xlink:href="#GLYPHcmmi7_76" x="11.824354"></use>
    <use xlink:href="#GLYPHcmmi7_101" x="17.310587"></use>
    <use xlink:href="#GLYPHcmmi7_118" x="21.104772"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,60.211472 7.981995)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_101"></use>
    <use xlink:href="#GLYPHcmmi7_108" x="3.794186"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,70.355209 7.981995)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_115"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,76.371719 7.981995)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy7_0"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,86.334305 7.981995)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr7_49"></use>
  </g>
</svg></span> using,
e.g., <a href="dilation_circle.html"><code><span data-if="hdevelop" style="display:inline">dilation_circle</span><span data-if="c" style="display:none">dilation_circle</span><span data-if="cpp" style="display:none">DilationCircle</span><span data-if="com" style="display:none">DilationCircle</span><span data-if="dotnet" style="display:none">DilationCircle</span><span data-if="python" style="display:none">dilation_circle</span></code></a>.
</p>
<p>As usual, the domain
of the input <a href="#Image"><i><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></i></a> is used to restrict the search
space for the reference point of the models <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>.
Consistent with the above semantics, the input <a href="#Image"><i><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></i></a>
can therefore contain a single image object or an image object tuple
containing multiple image objects.  If <a href="#Image"><i><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></i></a> contains a
single image object, its domain is used as the region of interest
for all models in <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>.  If <a href="#Image"><i><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></i></a> contains
multiple image objects, each domain is used as the region of
interest for the corresponding model in <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>.  In this
case, the images have to be identical except for their domains,
i.e., their pointers have to be identical
(the pointers can be checked using <a href="get_image_pointer1.html"><code><span data-if="hdevelop" style="display:inline">get_image_pointer1</span><span data-if="c" style="display:none">get_image_pointer1</span><span data-if="cpp" style="display:none">GetImagePointer1</span><span data-if="com" style="display:none">GetImagePointer1</span><span data-if="dotnet" style="display:none">GetImagePointer1</span><span data-if="python" style="display:none">get_image_pointer1</span></code></a>).
As a consequence, <a href="#Image"><i><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></i></a> cannot be constructed in an
arbitrary manner using <a href="concat_obj.html"><code><span data-if="hdevelop" style="display:inline">concat_obj</span><span data-if="c" style="display:none">concat_obj</span><span data-if="cpp" style="display:none">ConcatObj</span><span data-if="com" style="display:none">ConcatObj</span><span data-if="dotnet" style="display:none">ConcatObj</span><span data-if="python" style="display:none">concat_obj</span></code></a>, but must be created from
the same image using <a href="add_channels.html"><code><span data-if="hdevelop" style="display:inline">add_channels</span><span data-if="c" style="display:none">add_channels</span><span data-if="cpp" style="display:none">AddChannels</span><span data-if="com" style="display:none">AddChannels</span><span data-if="dotnet" style="display:none">AddChannels</span><span data-if="python" style="display:none">add_channels</span></code></a> or equivalent calls.  If
this is not the case, an error message is returned.
</p>
</dd>

<dt><b><a href="#AngleStart"><i><code><span data-if="hdevelop" style="display:inline">AngleStart</span><span data-if="c" style="display:none">AngleStart</span><span data-if="cpp" style="display:none">AngleStart</span><span data-if="com" style="display:none">AngleStart</span><span data-if="dotnet" style="display:none">angleStart</span><span data-if="python" style="display:none">angle_start</span></code></i></a>, <a href="#AngleExtent"><i><code><span data-if="hdevelop" style="display:inline">AngleExtent</span><span data-if="c" style="display:none">AngleExtent</span><span data-if="cpp" style="display:none">AngleExtent</span><span data-if="com" style="display:none">AngleExtent</span><span data-if="dotnet" style="display:none">angleExtent</span><span data-if="python" style="display:none">angle_extent</span></code></i></a>, <a href="#ScaleRMin"><i><code><span data-if="hdevelop" style="display:inline">ScaleRMin</span><span data-if="c" style="display:none">ScaleRMin</span><span data-if="cpp" style="display:none">ScaleRMin</span><span data-if="com" style="display:none">ScaleRMin</span><span data-if="dotnet" style="display:none">scaleRMin</span><span data-if="python" style="display:none">scale_rmin</span></code></i></a>,
<a href="#ScaleRMax"><i><code><span data-if="hdevelop" style="display:inline">ScaleRMax</span><span data-if="c" style="display:none">ScaleRMax</span><span data-if="cpp" style="display:none">ScaleRMax</span><span data-if="com" style="display:none">ScaleRMax</span><span data-if="dotnet" style="display:none">scaleRMax</span><span data-if="python" style="display:none">scale_rmax</span></code></i></a>, <a href="#ScaleCMin"><i><code><span data-if="hdevelop" style="display:inline">ScaleCMin</span><span data-if="c" style="display:none">ScaleCMin</span><span data-if="cpp" style="display:none">ScaleCMin</span><span data-if="com" style="display:none">ScaleCMin</span><span data-if="dotnet" style="display:none">scaleCMin</span><span data-if="python" style="display:none">scale_cmin</span></code></i></a>, and <a href="#ScaleCMax"><i><code><span data-if="hdevelop" style="display:inline">ScaleCMax</span><span data-if="c" style="display:none">ScaleCMax</span><span data-if="cpp" style="display:none">ScaleCMax</span><span data-if="com" style="display:none">ScaleCMax</span><span data-if="dotnet" style="display:none">scaleCMax</span><span data-if="python" style="display:none">scale_cmax</span></code></i></a>:</b></dt>
<dd>
<p>

The parameters <a href="#AngleStart"><i><code><span data-if="hdevelop" style="display:inline">AngleStart</span><span data-if="c" style="display:none">AngleStart</span><span data-if="cpp" style="display:none">AngleStart</span><span data-if="com" style="display:none">AngleStart</span><span data-if="dotnet" style="display:none">angleStart</span><span data-if="python" style="display:none">angle_start</span></code></i></a> and <a href="#AngleExtent"><i><code><span data-if="hdevelop" style="display:inline">AngleExtent</span><span data-if="c" style="display:none">AngleExtent</span><span data-if="cpp" style="display:none">AngleExtent</span><span data-if="com" style="display:none">AngleExtent</span><span data-if="dotnet" style="display:none">angleExtent</span><span data-if="python" style="display:none">angle_extent</span></code></i></a>
determine the range of rotations for which the model is searched.
The parameters <a href="#ScaleRMin"><i><code><span data-if="hdevelop" style="display:inline">ScaleRMin</span><span data-if="c" style="display:none">ScaleRMin</span><span data-if="cpp" style="display:none">ScaleRMin</span><span data-if="com" style="display:none">ScaleRMin</span><span data-if="dotnet" style="display:none">scaleRMin</span><span data-if="python" style="display:none">scale_rmin</span></code></i></a>, <a href="#ScaleRMax"><i><code><span data-if="hdevelop" style="display:inline">ScaleRMax</span><span data-if="c" style="display:none">ScaleRMax</span><span data-if="cpp" style="display:none">ScaleRMax</span><span data-if="com" style="display:none">ScaleRMax</span><span data-if="dotnet" style="display:none">scaleRMax</span><span data-if="python" style="display:none">scale_rmax</span></code></i></a>,
<a href="#ScaleCMin"><i><code><span data-if="hdevelop" style="display:inline">ScaleCMin</span><span data-if="c" style="display:none">ScaleCMin</span><span data-if="cpp" style="display:none">ScaleCMin</span><span data-if="com" style="display:none">ScaleCMin</span><span data-if="dotnet" style="display:none">scaleCMin</span><span data-if="python" style="display:none">scale_cmin</span></code></i></a>, and <a href="#ScaleCMax"><i><code><span data-if="hdevelop" style="display:inline">ScaleCMax</span><span data-if="c" style="display:none">ScaleCMax</span><span data-if="cpp" style="display:none">ScaleCMax</span><span data-if="com" style="display:none">ScaleCMax</span><span data-if="dotnet" style="display:none">scaleCMax</span><span data-if="python" style="display:none">scale_cmax</span></code></i></a> determine the range of
scales in the row and column directions for which the model is
searched.  If necessary, both ranges are clipped to the range given
when the model was created with <a href="create_aniso_shape_model.html"><code><span data-if="hdevelop" style="display:inline">create_aniso_shape_model</span><span data-if="c" style="display:none">create_aniso_shape_model</span><span data-if="cpp" style="display:none">CreateAnisoShapeModel</span><span data-if="com" style="display:none">CreateAnisoShapeModel</span><span data-if="dotnet" style="display:none">CreateAnisoShapeModel</span><span data-if="python" style="display:none">create_aniso_shape_model</span></code></a>.
In particular, this means that the angle ranges of the model and the
search must overlap.
</p>
<p>If in <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a> a model is passed that was created by
using <a href="create_shape_model.html"><code><span data-if="hdevelop" style="display:inline">create_shape_model</span><span data-if="c" style="display:none">create_shape_model</span><span data-if="cpp" style="display:none">CreateShapeModel</span><span data-if="com" style="display:none">CreateShapeModel</span><span data-if="dotnet" style="display:none">CreateShapeModel</span><span data-if="python" style="display:none">create_shape_model</span></code></a> or <a href="create_scaled_shape_model.html"><code><span data-if="hdevelop" style="display:inline">create_scaled_shape_model</span><span data-if="c" style="display:none">create_scaled_shape_model</span><span data-if="cpp" style="display:none">CreateScaledShapeModel</span><span data-if="com" style="display:none">CreateScaledShapeModel</span><span data-if="dotnet" style="display:none">CreateScaledShapeModel</span><span data-if="python" style="display:none">create_scaled_shape_model</span></code></a>
then the model is searched with an isotropic scaling of 1.0
or with an isotropic scaling within the range from <a href="#ScaleRMin"><i><code><span data-if="hdevelop" style="display:inline">ScaleRMin</span><span data-if="c" style="display:none">ScaleRMin</span><span data-if="cpp" style="display:none">ScaleRMin</span><span data-if="com" style="display:none">ScaleRMin</span><span data-if="dotnet" style="display:none">scaleRMin</span><span data-if="python" style="display:none">scale_rmin</span></code></i></a>
to <a href="#ScaleRMax"><i><code><span data-if="hdevelop" style="display:inline">ScaleRMax</span><span data-if="c" style="display:none">ScaleRMax</span><span data-if="cpp" style="display:none">ScaleRMax</span><span data-if="com" style="display:none">ScaleRMax</span><span data-if="dotnet" style="display:none">scaleRMax</span><span data-if="python" style="display:none">scale_rmax</span></code></i></a>, respectively.  In this case, for
<a href="#ScaleR"><i><code><span data-if="hdevelop" style="display:inline">ScaleR</span><span data-if="c" style="display:none">ScaleR</span><span data-if="cpp" style="display:none">ScaleR</span><span data-if="com" style="display:none">ScaleR</span><span data-if="dotnet" style="display:none">scaleR</span><span data-if="python" style="display:none">scale_r</span></code></i></a> and <a href="#ScaleC"><i><code><span data-if="hdevelop" style="display:inline">ScaleC</span><span data-if="c" style="display:none">ScaleC</span><span data-if="cpp" style="display:none">ScaleC</span><span data-if="com" style="display:none">ScaleC</span><span data-if="dotnet" style="display:none">scaleC</span><span data-if="python" style="display:none">scale_c</span></code></i></a> identical values are returned.
</p>
<p>Note that in some cases instances with a rotation or scale that is
slightly outside the specified range are found. This may happen if
the specified range is smaller than the range given during the
creation of the model. <a href="#AngleStart"><i><code><span data-if="hdevelop" style="display:inline">AngleStart</span><span data-if="c" style="display:none">AngleStart</span><span data-if="cpp" style="display:none">AngleStart</span><span data-if="com" style="display:none">AngleStart</span><span data-if="dotnet" style="display:none">angleStart</span><span data-if="python" style="display:none">angle_start</span></code></i></a> and <a href="#AngleExtent"><i><code><span data-if="hdevelop" style="display:inline">AngleExtent</span><span data-if="c" style="display:none">AngleExtent</span><span data-if="cpp" style="display:none">AngleExtent</span><span data-if="com" style="display:none">AngleExtent</span><span data-if="dotnet" style="display:none">angleExtent</span><span data-if="python" style="display:none">angle_extent</span></code></i></a>
as well as <a href="#ScaleRMin"><i><code><span data-if="hdevelop" style="display:inline">ScaleRMin</span><span data-if="c" style="display:none">ScaleRMin</span><span data-if="cpp" style="display:none">ScaleRMin</span><span data-if="com" style="display:none">ScaleRMin</span><span data-if="dotnet" style="display:none">scaleRMin</span><span data-if="python" style="display:none">scale_rmin</span></code></i></a>/<a href="#ScaleCMin"><i><code><span data-if="hdevelop" style="display:inline">ScaleCMin</span><span data-if="c" style="display:none">ScaleCMin</span><span data-if="cpp" style="display:none">ScaleCMin</span><span data-if="com" style="display:none">ScaleCMin</span><span data-if="dotnet" style="display:none">scaleCMin</span><span data-if="python" style="display:none">scale_cmin</span></code></i></a> and
<a href="#ScaleRMax"><i><code><span data-if="hdevelop" style="display:inline">ScaleRMax</span><span data-if="c" style="display:none">ScaleRMax</span><span data-if="cpp" style="display:none">ScaleRMax</span><span data-if="com" style="display:none">ScaleRMax</span><span data-if="dotnet" style="display:none">scaleRMax</span><span data-if="python" style="display:none">scale_rmax</span></code></i></a>/<a href="#ScaleCMax"><i><code><span data-if="hdevelop" style="display:inline">ScaleCMax</span><span data-if="c" style="display:none">ScaleCMax</span><span data-if="cpp" style="display:none">ScaleCMax</span><span data-if="com" style="display:none">ScaleCMax</span><span data-if="dotnet" style="display:none">scaleCMax</span><span data-if="python" style="display:none">scale_cmax</span></code></i></a> are checked only
at the highest pyramid level.  Matches that are found on the highest
pyramid level are refined to the lowest pyramid level. For performance
reasons, however, during the refinement it is no longer checked
whether the matches are still within the specified ranges.
</p>
</dd>

<dt><b><a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a>:</b></dt>
<dd>
<p>

The parameter <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> determines what score a potential
match must at least have to be regarded as an instance of the model
in the image.  The larger <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> is chosen, the faster
the search is.  If the model can be expected never to be occluded in
the images, <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> may be set as high as 0.8 or even 0.9.
If the matches are not tracked to the lowest pyramid level (see
below) it might happen that instances with a score slightly below
<a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> are found.
</p>
<p>If a single value is passed in <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a>, this value is
applied to found instances of all models. If, on the other hand,
<a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> contains multiple values, the values are applied
separately for the respective model.
</p>
<p>In case that the shape models have been extended by clutter parameters with
<a href="set_shape_model_clutter.html"><code><span data-if="hdevelop" style="display:inline">set_shape_model_clutter</span><span data-if="c" style="display:none">set_shape_model_clutter</span><span data-if="cpp" style="display:none">SetShapeModelClutter</span><span data-if="com" style="display:none">SetShapeModelClutter</span><span data-if="dotnet" style="display:none">SetShapeModelClutter</span><span data-if="python" style="display:none">set_shape_model_clutter</span></code></a> and thus <i><span data-if="hdevelop" style="display:inline">'use_clutter'</span><span data-if="c" style="display:none">"use_clutter"</span><span data-if="cpp" style="display:none">"use_clutter"</span><span data-if="com" style="display:none">"use_clutter"</span><span data-if="dotnet" style="display:none">"use_clutter"</span><span data-if="python" style="display:none">"use_clutter"</span></i> is enabled,
<a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> expects for each minimum score an additional value which
determines what clutter score a potential match must at most have to be
regarded as an instance of the model in the image. The runtime using clutter
parameters will be at least as high as the runtime without clutter parameters
and <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> set to <i>0</i>. Changing this second value does
not influence the runtime. Note that the different shape models must have the
same value for <i><span data-if="hdevelop" style="display:inline">'use_clutter'</span><span data-if="c" style="display:none">"use_clutter"</span><span data-if="cpp" style="display:none">"use_clutter"</span><span data-if="com" style="display:none">"use_clutter"</span><span data-if="dotnet" style="display:none">"use_clutter"</span><span data-if="python" style="display:none">"use_clutter"</span></i>.
</p>
<p>If the maximum clutter is specified separately for each model, which is
needed if also the minimum score is set for each model individually,
<a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> must contain twice the number of elements as ModelIDs.  In
this case, the minimum score and the maximum clutter must be specified
interleaved in <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a>. If, for example, two models are specified
in ModelIDs, the minimum score is 0.9 for the first model and 0.8 for the
second model, and the maximum clutter is 0.1 for the first model and 0.2 for
the second model, <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> = <i>[0.9,0.1,0.8,0.2]</i> must be
selected.
</p>
</dd>

<dt><b><a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a>:</b></dt>
<dd>
<p>

The maximum number of instances to be found can be determined with
<a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a>.  If more than <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> instances
with a score greater than <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> are found in the image,
only the best <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> instances are returned.  If fewer
than <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> are found, only that number is returned,
i.e., the parameter <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> takes precedence over
<a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a>.  If all model instances exceeding
<a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> in the image should be found, <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a>
must be set to <i>0</i>.
</p>
<p>When tracking the matches through the image pyramid, on each level,
some less promising matches are rejected based on <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a>. Thus,
it is possible that some matches are rejected that would have had a higher
score on the lowest pyramid level. Due to this, for example, the found
match for <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> set to <i>1</i> might be
different from the match with the highest score returned when setting
<a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> to <i>0</i> or &gt; <i>1</i>.
</p>
<p>If multiple objects with a similar score are expected, but only the one with
the highest score should be returned, it might be preferable to raise
<a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a>, and then select the match with the highest score.
</p>
<p>In case that the shape models have been extended by clutter parameters
using <a href="set_shape_model_clutter.html"><code><span data-if="hdevelop" style="display:inline">set_shape_model_clutter</span><span data-if="c" style="display:none">set_shape_model_clutter</span><span data-if="cpp" style="display:none">SetShapeModelClutter</span><span data-if="com" style="display:none">SetShapeModelClutter</span><span data-if="dotnet" style="display:none">SetShapeModelClutter</span><span data-if="python" style="display:none">set_shape_model_clutter</span></code></a>, <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> also
considers the second value passed in <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a>: If more than
<a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> instances with a score greater than the first
entry of <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> and a clutter score smaller than the second
entry of <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> are found in the image,
only the best <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> instances with respect to clutter
are returned. Still,
<a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> takes precedence over <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> and
<a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> must be set to <i>0</i> if all model instances
fulfilling the conditions imposed by <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> should be
found. Please note that using clutter parameters, when tracking the matches
through the image pyramid, no matches are rejected. Thus the runtime
using clutter parameters will be at least as high as the runtime without
clutter parameters and <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> set to <i>0</i>.
</p>
<p>If <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a>
contains one element, <code><span data-if="hdevelop" style="display:inline">find_aniso_shape_models</span><span data-if="c" style="display:none">find_aniso_shape_models</span><span data-if="cpp" style="display:none">FindAnisoShapeModels</span><span data-if="com" style="display:none">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none">FindAnisoShapeModels</span><span data-if="python" style="display:none">find_aniso_shape_models</span></code> returns the
best <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> instances of the model irrespective of the
type of the model.  If, for example, two models are passed in
<a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a> and <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> = 2 is selected, it can
happen that two instances of the first model and no instances of the
second model, one instance of the first model and one instance of
the second model, or no instances of the first model and two
instances of the second model are returned.  If, on the other hand,
<a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> contains multiple values, the number of
instances returned of the different models corresponds to the number
specified in the respective entry in <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a>.  If, for
example, <a href="#NumMatches"><i><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></i></a> = [1,1] is selected, one instance of
the first model and one instance of the second model is returned.
</p>
</dd>

<dt><b><a href="#MaxOverlap"><i><code><span data-if="hdevelop" style="display:inline">MaxOverlap</span><span data-if="c" style="display:none">MaxOverlap</span><span data-if="cpp" style="display:none">MaxOverlap</span><span data-if="com" style="display:none">MaxOverlap</span><span data-if="dotnet" style="display:none">maxOverlap</span><span data-if="python" style="display:none">max_overlap</span></code></i></a>:</b></dt>
<dd>
<p>

If the model exhibits symmetries it may happen that multiple
instances with similar positions but different rotations are found
in the image.  The parameter <a href="#MaxOverlap"><i><code><span data-if="hdevelop" style="display:inline">MaxOverlap</span><span data-if="c" style="display:none">MaxOverlap</span><span data-if="cpp" style="display:none">MaxOverlap</span><span data-if="com" style="display:none">MaxOverlap</span><span data-if="dotnet" style="display:none">maxOverlap</span><span data-if="python" style="display:none">max_overlap</span></code></i></a> determines by what
fraction (i.e., a number between 0 and 1) two instances may at most
overlap in order to consider them as different instances, and hence
to be returned separately.  If two instances overlap each other by
more than <a href="#MaxOverlap"><i><code><span data-if="hdevelop" style="display:inline">MaxOverlap</span><span data-if="c" style="display:none">MaxOverlap</span><span data-if="cpp" style="display:none">MaxOverlap</span><span data-if="com" style="display:none">MaxOverlap</span><span data-if="dotnet" style="display:none">maxOverlap</span><span data-if="python" style="display:none">max_overlap</span></code></i></a> only the best instance is returned.
The calculation of the overlap is based on the smallest enclosing
rectangle of arbitrary orientation (see <a href="smallest_rectangle2.html"><code><span data-if="hdevelop" style="display:inline">smallest_rectangle2</span><span data-if="c" style="display:none">smallest_rectangle2</span><span data-if="cpp" style="display:none">SmallestRectangle2</span><span data-if="com" style="display:none">SmallestRectangle2</span><span data-if="dotnet" style="display:none">SmallestRectangle2</span><span data-if="python" style="display:none">smallest_rectangle2</span></code></a>)
of the found instances.  If <a href="#MaxOverlap"><i><code><span data-if="hdevelop" style="display:inline">MaxOverlap</span><span data-if="c" style="display:none">MaxOverlap</span><span data-if="cpp" style="display:none">MaxOverlap</span><span data-if="com" style="display:none">MaxOverlap</span><span data-if="dotnet" style="display:none">maxOverlap</span><span data-if="python" style="display:none">max_overlap</span></code></i></a>=0, the found
instances may not overlap at all, while for <a href="#MaxOverlap"><i><code><span data-if="hdevelop" style="display:inline">MaxOverlap</span><span data-if="c" style="display:none">MaxOverlap</span><span data-if="cpp" style="display:none">MaxOverlap</span><span data-if="com" style="display:none">MaxOverlap</span><span data-if="dotnet" style="display:none">maxOverlap</span><span data-if="python" style="display:none">max_overlap</span></code></i></a>=1
all instances are returned.
</p>
<p>If a single value is passed in
<a href="#MaxOverlap"><i><code><span data-if="hdevelop" style="display:inline">MaxOverlap</span><span data-if="c" style="display:none">MaxOverlap</span><span data-if="cpp" style="display:none">MaxOverlap</span><span data-if="com" style="display:none">MaxOverlap</span><span data-if="dotnet" style="display:none">maxOverlap</span><span data-if="python" style="display:none">max_overlap</span></code></i></a>, the overlap is computed for all found instances
of the different models, irrespective of the model type, i.e.,
instances of the same or of different models that overlap too much
are eliminated.  If, on the other hand, multiple values are passed
in <a href="#MaxOverlap"><i><code><span data-if="hdevelop" style="display:inline">MaxOverlap</span><span data-if="c" style="display:none">MaxOverlap</span><span data-if="cpp" style="display:none">MaxOverlap</span><span data-if="com" style="display:none">MaxOverlap</span><span data-if="dotnet" style="display:none">maxOverlap</span><span data-if="python" style="display:none">max_overlap</span></code></i></a>, the overlap is only computed for found
instances of the model that have the same model type, i.e., only
instances of the same model that overlap too much are eliminated.
In this mode, models of different types may overlap completely.
</p>
</dd>

<dt><b><a href="#SubPixel"><i><code><span data-if="hdevelop" style="display:inline">SubPixel</span><span data-if="c" style="display:none">SubPixel</span><span data-if="cpp" style="display:none">SubPixel</span><span data-if="com" style="display:none">SubPixel</span><span data-if="dotnet" style="display:none">subPixel</span><span data-if="python" style="display:none">sub_pixel</span></code></i></a>:</b></dt>
<dd>
<p>

The parameter <a href="#SubPixel"><i><code><span data-if="hdevelop" style="display:inline">SubPixel</span><span data-if="c" style="display:none">SubPixel</span><span data-if="cpp" style="display:none">SubPixel</span><span data-if="com" style="display:none">SubPixel</span><span data-if="dotnet" style="display:none">subPixel</span><span data-if="python" style="display:none">sub_pixel</span></code></i></a> determines whether the instances
should be extracted with subpixel accuracy.  If <a href="#SubPixel"><i><code><span data-if="hdevelop" style="display:inline">SubPixel</span><span data-if="c" style="display:none">SubPixel</span><span data-if="cpp" style="display:none">SubPixel</span><span data-if="com" style="display:none">SubPixel</span><span data-if="dotnet" style="display:none">subPixel</span><span data-if="python" style="display:none">sub_pixel</span></code></i></a> is
set to <i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i> (or <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> for backwards
compatibility) the model's pose is only determined with pixel
accuracy and the angle and scale resolution that was specified with
<a href="create_aniso_shape_model.html"><code><span data-if="hdevelop" style="display:inline">create_aniso_shape_model</span><span data-if="c" style="display:none">create_aniso_shape_model</span><span data-if="cpp" style="display:none">CreateAnisoShapeModel</span><span data-if="com" style="display:none">CreateAnisoShapeModel</span><span data-if="dotnet" style="display:none">CreateAnisoShapeModel</span><span data-if="python" style="display:none">create_aniso_shape_model</span></code></a>.  If <a href="#SubPixel"><i><code><span data-if="hdevelop" style="display:inline">SubPixel</span><span data-if="c" style="display:none">SubPixel</span><span data-if="cpp" style="display:none">SubPixel</span><span data-if="com" style="display:none">SubPixel</span><span data-if="dotnet" style="display:none">subPixel</span><span data-if="python" style="display:none">sub_pixel</span></code></i></a> is set to
<i><span data-if="hdevelop" style="display:inline">'interpolation'</span><span data-if="c" style="display:none">"interpolation"</span><span data-if="cpp" style="display:none">"interpolation"</span><span data-if="com" style="display:none">"interpolation"</span><span data-if="dotnet" style="display:none">"interpolation"</span><span data-if="python" style="display:none">"interpolation"</span></i> (or <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>) the position as well
as the rotation and scale are determined with subpixel accuracy.  In
this mode, the model's pose is interpolated from the score function.
This mode costs almost no computation time and achieves an accuracy
that is high enough for most applications.  In some applications,
however, the accuracy requirements are extremely high.  In these
cases, the model's pose can be determined through a least-squares
adjustment, i.e., by minimizing the distances of the model points to
their corresponding image points.  In contrast to
<i><span data-if="hdevelop" style="display:inline">'interpolation'</span><span data-if="c" style="display:none">"interpolation"</span><span data-if="cpp" style="display:none">"interpolation"</span><span data-if="com" style="display:none">"interpolation"</span><span data-if="dotnet" style="display:none">"interpolation"</span><span data-if="python" style="display:none">"interpolation"</span></i>, this mode requires additional computation
time.  The different modes for least-squares adjustment
(<i><span data-if="hdevelop" style="display:inline">'least_squares'</span><span data-if="c" style="display:none">"least_squares"</span><span data-if="cpp" style="display:none">"least_squares"</span><span data-if="com" style="display:none">"least_squares"</span><span data-if="dotnet" style="display:none">"least_squares"</span><span data-if="python" style="display:none">"least_squares"</span></i>, <i><span data-if="hdevelop" style="display:inline">'least_squares_high'</span><span data-if="c" style="display:none">"least_squares_high"</span><span data-if="cpp" style="display:none">"least_squares_high"</span><span data-if="com" style="display:none">"least_squares_high"</span><span data-if="dotnet" style="display:none">"least_squares_high"</span><span data-if="python" style="display:none">"least_squares_high"</span></i>, and
<i><span data-if="hdevelop" style="display:inline">'least_squares_very_high'</span><span data-if="c" style="display:none">"least_squares_very_high"</span><span data-if="cpp" style="display:none">"least_squares_very_high"</span><span data-if="com" style="display:none">"least_squares_very_high"</span><span data-if="dotnet" style="display:none">"least_squares_very_high"</span><span data-if="python" style="display:none">"least_squares_very_high"</span></i>) can be used to determine the
accuracy with which the minimum distance is being searched.  The
higher the accuracy is chosen, the longer the subpixel extraction
will take, however.  Usually, <a href="#SubPixel"><i><code><span data-if="hdevelop" style="display:inline">SubPixel</span><span data-if="c" style="display:none">SubPixel</span><span data-if="cpp" style="display:none">SubPixel</span><span data-if="com" style="display:none">SubPixel</span><span data-if="dotnet" style="display:none">subPixel</span><span data-if="python" style="display:none">sub_pixel</span></code></i></a> should be set to
<i><span data-if="hdevelop" style="display:inline">'interpolation'</span><span data-if="c" style="display:none">"interpolation"</span><span data-if="cpp" style="display:none">"interpolation"</span><span data-if="com" style="display:none">"interpolation"</span><span data-if="dotnet" style="display:none">"interpolation"</span><span data-if="python" style="display:none">"interpolation"</span></i>.  If least-squares adjustment is desired,
<i><span data-if="hdevelop" style="display:inline">'least_squares'</span><span data-if="c" style="display:none">"least_squares"</span><span data-if="cpp" style="display:none">"least_squares"</span><span data-if="com" style="display:none">"least_squares"</span><span data-if="dotnet" style="display:none">"least_squares"</span><span data-if="python" style="display:none">"least_squares"</span></i> should be chosen because this results in
the best trade-off between runtime and accuracy.
</p>
<p>Objects that are slightly deformed with respect to the model, in
some cases cannot be found or are found but only with a low
accuracy. For such objects it is possible to additionally pass a
maximal allowable object deformation in the parameter
<a href="#SubPixel"><i><code><span data-if="hdevelop" style="display:inline">SubPixel</span><span data-if="c" style="display:none">SubPixel</span><span data-if="cpp" style="display:none">SubPixel</span><span data-if="com" style="display:none">SubPixel</span><span data-if="dotnet" style="display:none">subPixel</span><span data-if="python" style="display:none">sub_pixel</span></code></i></a>. The deformation must be specified in pixels. This
can be done by passing the optional parameter value
<i><span data-if="hdevelop" style="display:inline">'max_deformation '</span><span data-if="c" style="display:none">"max_deformation "</span><span data-if="cpp" style="display:none">"max_deformation "</span><span data-if="com" style="display:none">"max_deformation "</span><span data-if="dotnet" style="display:none">"max_deformation "</span><span data-if="python" style="display:none">"max_deformation "</span></i> followed by an integer value between
<i>0</i> and <i>32</i> (in the same string), which specifies the
maximum deformation. For example, if the shape of the object may be
deformed by up to 2 pixels with respect to the shape that is stored
in the model, the value <i><span data-if="hdevelop" style="display:inline">'max_deformation 2'</span><span data-if="c" style="display:none">"max_deformation 2"</span><span data-if="cpp" style="display:none">"max_deformation 2"</span><span data-if="com" style="display:none">"max_deformation 2"</span><span data-if="dotnet" style="display:none">"max_deformation 2"</span><span data-if="python" style="display:none">"max_deformation 2"</span></i> must be passed
in <a href="#SubPixel"><i><code><span data-if="hdevelop" style="display:inline">SubPixel</span><span data-if="c" style="display:none">SubPixel</span><span data-if="cpp" style="display:none">SubPixel</span><span data-if="com" style="display:none">SubPixel</span><span data-if="dotnet" style="display:none">subPixel</span><span data-if="python" style="display:none">sub_pixel</span></code></i></a> in addition to the above described mode for the
subpixel extraction, i.e., for example
<i><span data-if="hdevelop" style="display:inline">['least_squares', 'max_deformation 2']</span><span data-if="c" style="display:none">["least_squares", "max_deformation 2"]</span><span data-if="cpp" style="display:none">["least_squares", "max_deformation 2"]</span><span data-if="com" style="display:none">["least_squares", "max_deformation 2"]</span><span data-if="dotnet" style="display:none">["least_squares", "max_deformation 2"]</span><span data-if="python" style="display:none">["least_squares", "max_deformation 2"]</span></i>.
Passing the value <i><span data-if="hdevelop" style="display:inline">'max_deformation 0'</span><span data-if="c" style="display:none">"max_deformation 0"</span><span data-if="cpp" style="display:none">"max_deformation 0"</span><span data-if="com" style="display:none">"max_deformation 0"</span><span data-if="dotnet" style="display:none">"max_deformation 0"</span><span data-if="python" style="display:none">"max_deformation 0"</span></i> corresponds to a search
without allowing deformations, i.e., the
behavior is the same as if no <i><span data-if="hdevelop" style="display:inline">'max_deformation '</span><span data-if="c" style="display:none">"max_deformation "</span><span data-if="cpp" style="display:none">"max_deformation "</span><span data-if="com" style="display:none">"max_deformation "</span><span data-if="dotnet" style="display:none">"max_deformation "</span><span data-if="python" style="display:none">"max_deformation "</span></i> is passed.
Note that higher values for the maximum deformation often result in
an increased runtime. Furthermore, the higher the deformation value
is chosen, the higher is the risk of finding wrong model instances.
Both problems mainly arise when searching for small objects or for
objects with fine structures.  This is because such kinds of objects
for higher deformations lose their characteristic shape, which is
important for a robust search. Also note that for higher
deformations the accuracy of partially occluded objects might
decrease if clutter is present close to the object.  Consequently,
the maximum deformation should be chosen as small as possible and
only as high as necessary.
Approximately rotationally symmetric objects may not be found if
<i><span data-if="hdevelop" style="display:inline">'max_deformation'</span><span data-if="c" style="display:none">"max_deformation"</span><span data-if="cpp" style="display:none">"max_deformation"</span><span data-if="com" style="display:none">"max_deformation"</span><span data-if="dotnet" style="display:none">"max_deformation"</span><span data-if="python" style="display:none">"max_deformation"</span></i> and <a href="#AngleExtent"><i><code><span data-if="hdevelop" style="display:inline">AngleExtent</span><span data-if="c" style="display:none">AngleExtent</span><span data-if="cpp" style="display:none">AngleExtent</span><span data-if="com" style="display:none">AngleExtent</span><span data-if="dotnet" style="display:none">angleExtent</span><span data-if="python" style="display:none">angle_extent</span></code></i></a> are both set to a value
greater than 0. In that case, ambiguities may occur that cannot be resolved,
and the match is rejected as false. If this happens, try to set either
<i><span data-if="hdevelop" style="display:inline">'max_deformation'</span><span data-if="c" style="display:none">"max_deformation"</span><span data-if="cpp" style="display:none">"max_deformation"</span><span data-if="com" style="display:none">"max_deformation"</span><span data-if="dotnet" style="display:none">"max_deformation"</span><span data-if="python" style="display:none">"max_deformation"</span></i> or <a href="#AngleExtent"><i><code><span data-if="hdevelop" style="display:inline">AngleExtent</span><span data-if="c" style="display:none">AngleExtent</span><span data-if="cpp" style="display:none">AngleExtent</span><span data-if="com" style="display:none">AngleExtent</span><span data-if="dotnet" style="display:none">angleExtent</span><span data-if="python" style="display:none">angle_extent</span></code></i></a> to 0, or adjust the model
such that symmetries are reduced.  When specifying a deformation higher
than <i>0</i> the computation of the score depends on the chosen
value for the subpixel extraction.  In most cases, the score of a
match changes if <i><span data-if="hdevelop" style="display:inline">'least_squares'</span><span data-if="c" style="display:none">"least_squares"</span><span data-if="cpp" style="display:none">"least_squares"</span><span data-if="com" style="display:none">"least_squares"</span><span data-if="dotnet" style="display:none">"least_squares"</span><span data-if="python" style="display:none">"least_squares"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'least_squares_high'</span><span data-if="c" style="display:none">"least_squares_high"</span><span data-if="cpp" style="display:none">"least_squares_high"</span><span data-if="com" style="display:none">"least_squares_high"</span><span data-if="dotnet" style="display:none">"least_squares_high"</span><span data-if="python" style="display:none">"least_squares_high"</span></i>, or <i><span data-if="hdevelop" style="display:inline">'least_squares_very_high'</span><span data-if="c" style="display:none">"least_squares_very_high"</span><span data-if="cpp" style="display:none">"least_squares_very_high"</span><span data-if="com" style="display:none">"least_squares_very_high"</span><span data-if="dotnet" style="display:none">"least_squares_very_high"</span><span data-if="python" style="display:none">"least_squares_very_high"</span></i>
(see above) is chosen for the subpixel extraction (in comparison to
<i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i> or <i><span data-if="hdevelop" style="display:inline">'interpolation'</span><span data-if="c" style="display:none">"interpolation"</span><span data-if="cpp" style="display:none">"interpolation"</span><span data-if="com" style="display:none">"interpolation"</span><span data-if="dotnet" style="display:none">"interpolation"</span><span data-if="python" style="display:none">"interpolation"</span></i>). Furthermore, if one of
the least-squares adjustments is selected the score might increase
when increasing the maximum deformation because then for the model
points more corresponding image points can be found.
To get a meaningful score value and to avoid erroneous matches, we
recommend to always combine the allowance of a deformation with a
least-squares adjustment.
</p>
<p>If the subpixel extraction and/or the maximum object deformation is
specified separately for each model, for each model passed in
<a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a> exactly one value for the subpixel extraction must
be passed in <a href="#SubPixel"><i><code><span data-if="hdevelop" style="display:inline">SubPixel</span><span data-if="c" style="display:none">SubPixel</span><span data-if="cpp" style="display:none">SubPixel</span><span data-if="com" style="display:none">SubPixel</span><span data-if="dotnet" style="display:none">subPixel</span><span data-if="python" style="display:none">sub_pixel</span></code></i></a>. After each value for the subpixel extraction
optionally a second value can be passed, which describes the maximum
object deformation of the corresponding mode. If for a certain model no
value for the maximum object deformation is passed, the model is searched
without taking deformations into account.  For example, if two models are
passed in <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a> and for the first model the subpixel extraction
is set to <i><span data-if="hdevelop" style="display:inline">'interpolation'</span><span data-if="c" style="display:none">"interpolation"</span><span data-if="cpp" style="display:none">"interpolation"</span><span data-if="com" style="display:none">"interpolation"</span><span data-if="dotnet" style="display:none">"interpolation"</span><span data-if="python" style="display:none">"interpolation"</span></i> and no object deformations are allowed
and for the second model the subpixel extraction is set to
<i><span data-if="hdevelop" style="display:inline">'least_squares'</span><span data-if="c" style="display:none">"least_squares"</span><span data-if="cpp" style="display:none">"least_squares"</span><span data-if="com" style="display:none">"least_squares"</span><span data-if="dotnet" style="display:none">"least_squares"</span><span data-if="python" style="display:none">"least_squares"</span></i> and a maximum object deformation of <i>3</i>
pixels is allowed, then the tuple
<i><span data-if="hdevelop" style="display:inline">['interpolation', 'least_squares', 'max_deformation 3']</span><span data-if="c" style="display:none">["interpolation", "least_squares", "max_deformation 3"]</span><span data-if="cpp" style="display:none">["interpolation", "least_squares", "max_deformation 3"]</span><span data-if="com" style="display:none">["interpolation", "least_squares", "max_deformation 3"]</span><span data-if="dotnet" style="display:none">["interpolation", "least_squares", "max_deformation 3"]</span><span data-if="python" style="display:none">["interpolation", "least_squares", "max_deformation 3"]</span></i> must be
passed in <a href="#SubPixel"><i><code><span data-if="hdevelop" style="display:inline">SubPixel</span><span data-if="c" style="display:none">SubPixel</span><span data-if="cpp" style="display:none">SubPixel</span><span data-if="com" style="display:none">SubPixel</span><span data-if="dotnet" style="display:none">subPixel</span><span data-if="python" style="display:none">sub_pixel</span></code></i></a>. Alternatively, the equivalent tuple
<i><span data-if="hdevelop" style="display:inline">['interpolation', 'max_deformation 0', 'least_squares',
'max_deformation 3']</span><span data-if="c" style="display:none">["interpolation", "max_deformation 0", "least_squares",
"max_deformation 3"]</span><span data-if="cpp" style="display:none">["interpolation", "max_deformation 0", "least_squares",
"max_deformation 3"]</span><span data-if="com" style="display:none">["interpolation", "max_deformation 0", "least_squares",
"max_deformation 3"]</span><span data-if="dotnet" style="display:none">["interpolation", "max_deformation 0", "least_squares",
"max_deformation 3"]</span><span data-if="python" style="display:none">["interpolation", "max_deformation 0", "least_squares",
"max_deformation 3"]</span></i> may be passed.
</p>
</dd>

<dt><b><a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a>:</b></dt>
<dd>
<p>

The number of pyramid levels used during the search is determined
with <a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a>.  If necessary, the number of levels is
clipped to the range given when the shape model was created with
<a href="create_aniso_shape_model.html"><code><span data-if="hdevelop" style="display:inline">create_aniso_shape_model</span><span data-if="c" style="display:none">create_aniso_shape_model</span><span data-if="cpp" style="display:none">CreateAnisoShapeModel</span><span data-if="com" style="display:none">CreateAnisoShapeModel</span><span data-if="dotnet" style="display:none">CreateAnisoShapeModel</span><span data-if="python" style="display:none">create_aniso_shape_model</span></code></a>.  If <a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a> is set to
<i>0</i>, the number of pyramid levels specified in
<a href="create_aniso_shape_model.html"><code><span data-if="hdevelop" style="display:inline">create_aniso_shape_model</span><span data-if="c" style="display:none">create_aniso_shape_model</span><span data-if="cpp" style="display:none">CreateAnisoShapeModel</span><span data-if="com" style="display:none">CreateAnisoShapeModel</span><span data-if="dotnet" style="display:none">CreateAnisoShapeModel</span><span data-if="python" style="display:none">create_aniso_shape_model</span></code></a> is used.
</p>
<p>In certain cases, the number of pyramid levels that was determined
automatically with, for example, <a href="create_aniso_shape_model.html"><code><span data-if="hdevelop" style="display:inline">create_aniso_shape_model</span><span data-if="c" style="display:none">create_aniso_shape_model</span><span data-if="cpp" style="display:none">CreateAnisoShapeModel</span><span data-if="com" style="display:none">CreateAnisoShapeModel</span><span data-if="dotnet" style="display:none">CreateAnisoShapeModel</span><span data-if="python" style="display:none">create_aniso_shape_model</span></code></a> may be too
high. The consequence may be that some matches that may have a high final
score are rejected on the highest pyramid level and thus are not found.
Instead of setting <a href="#MinScore"><i><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></i></a> to a very low value to find all
matches, it may be better to query the value of <a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a> with
<a href="get_shape_model_params.html"><code><span data-if="hdevelop" style="display:inline">get_shape_model_params</span><span data-if="c" style="display:none">get_shape_model_params</span><span data-if="cpp" style="display:none">GetShapeModelParams</span><span data-if="com" style="display:none">GetShapeModelParams</span><span data-if="dotnet" style="display:none">GetShapeModelParams</span><span data-if="python" style="display:none">get_shape_model_params</span></code></a> and then use a slightly lower value in
<code><span data-if="hdevelop" style="display:inline">find_aniso_shape_models</span><span data-if="c" style="display:none">find_aniso_shape_models</span><span data-if="cpp" style="display:none">FindAnisoShapeModels</span><span data-if="com" style="display:none">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none">FindAnisoShapeModels</span><span data-if="python" style="display:none">find_aniso_shape_models</span></code>. This approach is often better regarding
the speed and robustness of the matching.
</p>
<p>Optionally, <a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a> can contain a second value that determines
the lowest pyramid level to which the found matches are tracked.  Hence,
a value of <i>[4,2]</i> for <a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a> means that the
matching starts at the fourth pyramid level and tracks the matches
to the second lowest pyramid level (the lowest pyramid level is
denoted by a value of 1).  This mechanism can be used to decrease
the runtime of the matching.  It should be noted, however, that in
general the accuracy of the extracted pose parameters is lower in
this mode than in the normal mode, in which the matches are tracked
to the lowest pyramid level.  Hence, if a high accuracy is desired,
<a href="#SubPixel"><i><code><span data-if="hdevelop" style="display:inline">SubPixel</span><span data-if="c" style="display:none">SubPixel</span><span data-if="cpp" style="display:none">SubPixel</span><span data-if="com" style="display:none">SubPixel</span><span data-if="dotnet" style="display:none">subPixel</span><span data-if="python" style="display:none">sub_pixel</span></code></i></a> should be set to at least
<i><span data-if="hdevelop" style="display:inline">'least_squares'</span><span data-if="c" style="display:none">"least_squares"</span><span data-if="cpp" style="display:none">"least_squares"</span><span data-if="com" style="display:none">"least_squares"</span><span data-if="dotnet" style="display:none">"least_squares"</span><span data-if="python" style="display:none">"least_squares"</span></i>.  If the lowest pyramid level to use is
chosen too large, it may happen that the desired accuracy cannot be
achieved, or that wrong instances of the model are found because the
model is not specific enough on the higher pyramid levels to
facilitate a reliable selection of the correct instance of the
model.  In this case, the lowest pyramid level to use must be set to
a smaller value.
</p>
<p>If the lowest pyramid level is specified
separately for each model, <a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a> must contain twice the
number of elements as <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>.  In this case, the number
of pyramid levels and the lowest pyramid level must be specified
interleaved in <a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a>.  If, for example, two models are
specified in <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>, the number of pyramid levels is 5
for the first model and 4 for the second model, and the lowest
pyramid level is 2 for the first model and 1 for the second model,
<a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a> = <i>[5,2,4,1]</i> must be selected.  If
exactly two models are specified in <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>, a special
case occurs.  If in this case the lowest pyramid level is to be
specified, the number of pyramid levels and the lowest pyramid level
must be specified explicitly for both models, even if they are
identical, because specifying two values in <a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a> is
interpreted as the explicit specification of the number of pyramid
levels for the two models.
</p>
<p>In input images of poor quality, i.e., in images that are, e.g.,
defocused, deformed, or noisy, often no instances of the shape model
can be found on the lowest pyramid level.  The reason for this
behavior is the missing or deformed edge information which is a
result of the poor image quality.  Nevertheless, the edge
information may be sufficient on higher pyramid levels.  But keep in
mind the above mentioned restrictions on accuracy and robustness if
instances that were found on higher pyramid levels are used.  The
selection of the suitable pyramid level, i.e., the lowest pyramid
level on which at least one instance of the shape model can be
found, depends on the model and on the input image.  This pyramid
level may vary from image to image.  To facilitate the matching on
images of poor quality, the lowest pyramid level on which at least
one instance of the model can be found can be determined
automatically during the matching.  To activate this mechanism, i.e.,
to use the so-called 'increased tolerance mode', the
lowest pyramid level must be specified negatively in
<a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a>.  If, e.g., <a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a> is set to
<i>[5,2,4,-1]</i>, the lowest pyramid level for the first model is
set to 2.  If no instance of the first model can be found on this
pyramid level, no result will be returned for this model.  For the
second shape model, the lowest pyramid level is set to <i>-1</i>.
Therefore, an instance of the shape model is searched on the pyramid
level 1.  If no instance of the second model can be found on this
pyramid level, the lowest pyramid level is determined on which at
least one instance of the model can be found.  The instances of this
pyramid level will then be returned.
</p>
<p>If a model was adapted with <a href="adapt_shape_model_high_noise.html"><code><span data-if="hdevelop" style="display:inline">adapt_shape_model_high_noise</span><span data-if="c" style="display:none">adapt_shape_model_high_noise</span><span data-if="cpp" style="display:none">AdaptShapeModelHighNoise</span><span data-if="com" style="display:none">AdaptShapeModelHighNoise</span><span data-if="dotnet" style="display:none">AdaptShapeModelHighNoise</span><span data-if="python" style="display:none">adapt_shape_model_high_noise</span></code></a>
the estimated lowest pyramid level will be used by default.
However, the user can override the estimated lowest pyramid level by
providing explicitly the lowest pyramid level as described above.
</p>
</dd>

<dt><b><a href="#Greediness"><i><code><span data-if="hdevelop" style="display:inline">Greediness</span><span data-if="c" style="display:none">Greediness</span><span data-if="cpp" style="display:none">Greediness</span><span data-if="com" style="display:none">Greediness</span><span data-if="dotnet" style="display:none">greediness</span><span data-if="python" style="display:none">greediness</span></code></i></a>:</b></dt>
<dd><p>

The parameter <a href="#Greediness"><i><code><span data-if="hdevelop" style="display:inline">Greediness</span><span data-if="c" style="display:none">Greediness</span><span data-if="cpp" style="display:none">Greediness</span><span data-if="com" style="display:none">Greediness</span><span data-if="dotnet" style="display:none">greediness</span><span data-if="python" style="display:none">greediness</span></code></i></a> determines how “greedily” the
search should be carried out.  If <a href="#Greediness"><i><code><span data-if="hdevelop" style="display:inline">Greediness</span><span data-if="c" style="display:none">Greediness</span><span data-if="cpp" style="display:none">Greediness</span><span data-if="com" style="display:none">Greediness</span><span data-if="dotnet" style="display:none">greediness</span><span data-if="python" style="display:none">greediness</span></code></i></a>=0, a safe
search heuristic is used, which always finds the model if it is
visible in the image and the other parameters are set appropriately.
However, the search will be relatively time
consuming in this case.  If <a href="#Greediness"><i><code><span data-if="hdevelop" style="display:inline">Greediness</span><span data-if="c" style="display:none">Greediness</span><span data-if="cpp" style="display:none">Greediness</span><span data-if="com" style="display:none">Greediness</span><span data-if="dotnet" style="display:none">greediness</span><span data-if="python" style="display:none">greediness</span></code></i></a>=1, an unsafe
search heuristic is used, which may cause the model not to be found
in rare cases, even though it is visible in the image.  For
<a href="#Greediness"><i><code><span data-if="hdevelop" style="display:inline">Greediness</span><span data-if="c" style="display:none">Greediness</span><span data-if="cpp" style="display:none">Greediness</span><span data-if="com" style="display:none">Greediness</span><span data-if="dotnet" style="display:none">greediness</span><span data-if="python" style="display:none">greediness</span></code></i></a>=1, the maximum search speed is achieved.  In
almost all cases, the shape model will always be found for
<a href="#Greediness"><i><code><span data-if="hdevelop" style="display:inline">Greediness</span><span data-if="c" style="display:none">Greediness</span><span data-if="cpp" style="display:none">Greediness</span><span data-if="com" style="display:none">Greediness</span><span data-if="dotnet" style="display:none">greediness</span><span data-if="python" style="display:none">greediness</span></code></i></a>=0.9.
</p></dd>
</dl>
<h3>Output parameters in detail</h3>
<dl class="generic">


<dt><b><a href="#Row"><i><code><span data-if="hdevelop" style="display:inline">Row</span><span data-if="c" style="display:none">Row</span><span data-if="cpp" style="display:none">Row</span><span data-if="com" style="display:none">Row</span><span data-if="dotnet" style="display:none">row</span><span data-if="python" style="display:none">row</span></code></i></a>, <a href="#Column"><i><code><span data-if="hdevelop" style="display:inline">Column</span><span data-if="c" style="display:none">Column</span><span data-if="cpp" style="display:none">Column</span><span data-if="com" style="display:none">Column</span><span data-if="dotnet" style="display:none">column</span><span data-if="python" style="display:none">column</span></code></i></a>, <a href="#Angle"><i><code><span data-if="hdevelop" style="display:inline">Angle</span><span data-if="c" style="display:none">Angle</span><span data-if="cpp" style="display:none">Angle</span><span data-if="com" style="display:none">Angle</span><span data-if="dotnet" style="display:none">angle</span><span data-if="python" style="display:none">angle</span></code></i></a>, <a href="#ScaleR"><i><code><span data-if="hdevelop" style="display:inline">ScaleR</span><span data-if="c" style="display:none">ScaleR</span><span data-if="cpp" style="display:none">ScaleR</span><span data-if="com" style="display:none">ScaleR</span><span data-if="dotnet" style="display:none">scaleR</span><span data-if="python" style="display:none">scale_r</span></code></i></a>,
<a href="#ScaleC"><i><code><span data-if="hdevelop" style="display:inline">ScaleC</span><span data-if="c" style="display:none">ScaleC</span><span data-if="cpp" style="display:none">ScaleC</span><span data-if="com" style="display:none">ScaleC</span><span data-if="dotnet" style="display:none">scaleC</span><span data-if="python" style="display:none">scale_c</span></code></i></a>:</b></dt>
<dd>
<p>

The position, rotation, and scale in the row and column direction of
the found instances of the model are returned in <a href="#Row"><i><code><span data-if="hdevelop" style="display:inline">Row</span><span data-if="c" style="display:none">Row</span><span data-if="cpp" style="display:none">Row</span><span data-if="com" style="display:none">Row</span><span data-if="dotnet" style="display:none">row</span><span data-if="python" style="display:none">row</span></code></i></a>,
<a href="#Column"><i><code><span data-if="hdevelop" style="display:inline">Column</span><span data-if="c" style="display:none">Column</span><span data-if="cpp" style="display:none">Column</span><span data-if="com" style="display:none">Column</span><span data-if="dotnet" style="display:none">column</span><span data-if="python" style="display:none">column</span></code></i></a>, <a href="#Angle"><i><code><span data-if="hdevelop" style="display:inline">Angle</span><span data-if="c" style="display:none">Angle</span><span data-if="cpp" style="display:none">Angle</span><span data-if="com" style="display:none">Angle</span><span data-if="dotnet" style="display:none">angle</span><span data-if="python" style="display:none">angle</span></code></i></a>, <a href="#ScaleR"><i><code><span data-if="hdevelop" style="display:inline">ScaleR</span><span data-if="c" style="display:none">ScaleR</span><span data-if="cpp" style="display:none">ScaleR</span><span data-if="com" style="display:none">ScaleR</span><span data-if="dotnet" style="display:none">scaleR</span><span data-if="python" style="display:none">scale_r</span></code></i></a>, and
<a href="#ScaleC"><i><code><span data-if="hdevelop" style="display:inline">ScaleC</span><span data-if="c" style="display:none">ScaleC</span><span data-if="cpp" style="display:none">ScaleC</span><span data-if="com" style="display:none">ScaleC</span><span data-if="dotnet" style="display:none">scaleC</span><span data-if="python" style="display:none">scale_c</span></code></i></a>.  The coordinates <a href="#Row"><i><code><span data-if="hdevelop" style="display:inline">Row</span><span data-if="c" style="display:none">Row</span><span data-if="cpp" style="display:none">Row</span><span data-if="com" style="display:none">Row</span><span data-if="dotnet" style="display:none">row</span><span data-if="python" style="display:none">row</span></code></i></a> and <a href="#Column"><i><code><span data-if="hdevelop" style="display:inline">Column</span><span data-if="c" style="display:none">Column</span><span data-if="cpp" style="display:none">Column</span><span data-if="com" style="display:none">Column</span><span data-if="dotnet" style="display:none">column</span><span data-if="python" style="display:none">column</span></code></i></a>
are the coordinates of the origin of the shape model in the search
image.  By default, the origin is the center of gravity of the
domain (region) of the image that was used to create the shape model
with <a href="create_aniso_shape_model.html"><code><span data-if="hdevelop" style="display:inline">create_aniso_shape_model</span><span data-if="c" style="display:none">create_aniso_shape_model</span><span data-if="cpp" style="display:none">CreateAnisoShapeModel</span><span data-if="com" style="display:none">CreateAnisoShapeModel</span><span data-if="dotnet" style="display:none">CreateAnisoShapeModel</span><span data-if="python" style="display:none">create_aniso_shape_model</span></code></a>.  A different origin can be
set with <a href="set_shape_model_origin.html"><code><span data-if="hdevelop" style="display:inline">set_shape_model_origin</span><span data-if="c" style="display:none">set_shape_model_origin</span><span data-if="cpp" style="display:none">SetShapeModelOrigin</span><span data-if="com" style="display:none">SetShapeModelOrigin</span><span data-if="dotnet" style="display:none">SetShapeModelOrigin</span><span data-if="python" style="display:none">set_shape_model_origin</span></code></a>.
</p>
<p>Note that the coordinates <a href="#Row"><i><code><span data-if="hdevelop" style="display:inline">Row</span><span data-if="c" style="display:none">Row</span><span data-if="cpp" style="display:none">Row</span><span data-if="com" style="display:none">Row</span><span data-if="dotnet" style="display:none">row</span><span data-if="python" style="display:none">row</span></code></i></a> and <a href="#Column"><i><code><span data-if="hdevelop" style="display:inline">Column</span><span data-if="c" style="display:none">Column</span><span data-if="cpp" style="display:none">Column</span><span data-if="com" style="display:none">Column</span><span data-if="dotnet" style="display:none">column</span><span data-if="python" style="display:none">column</span></code></i></a> do not
exactly correspond to the position of the model in the search
image. Thus, you cannot directly use them.  Instead, the values are
optimized for creating the transformation matrix with which you can
use the results of the matching for various tasks, e.g., to align
ROIs for other processing steps.
The example given for <a href="find_aniso_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_aniso_shape_model</span><span data-if="c" style="display:none">find_aniso_shape_model</span><span data-if="cpp" style="display:none">FindAnisoShapeModel</span><span data-if="com" style="display:none">FindAnisoShapeModel</span><span data-if="dotnet" style="display:none">FindAnisoShapeModel</span><span data-if="python" style="display:none">find_aniso_shape_model</span></code></a> shows how to create
this matrix and use it to display the model at the found position in the
search image.
</p>
<p>Note also that for visualizing the model at the found position, also
the procedure <code>dev_display_shape_matching_results</code> can be used.
</p>
</dd>

<dt><b><a href="#Score"><i><code><span data-if="hdevelop" style="display:inline">Score</span><span data-if="c" style="display:none">Score</span><span data-if="cpp" style="display:none">Score</span><span data-if="com" style="display:none">Score</span><span data-if="dotnet" style="display:none">score</span><span data-if="python" style="display:none">score</span></code></i></a>:</b></dt>
<dd>
<p>

The score of each found instance is returned in
<a href="#Score"><i><code><span data-if="hdevelop" style="display:inline">Score</span><span data-if="c" style="display:none">Score</span><span data-if="cpp" style="display:none">Score</span><span data-if="com" style="display:none">Score</span><span data-if="dotnet" style="display:none">score</span><span data-if="python" style="display:none">score</span></code></i></a>.  The score is a number between 0 and 1, which is an
approximate measure of how much of the model is visible in the
image.  If, for example, half of the model is occluded, the score
cannot exceed 0.5.
</p>
<p>In case that the shape models have been extended by clutter parameters
using <a href="set_shape_model_clutter.html"><code><span data-if="hdevelop" style="display:inline">set_shape_model_clutter</span><span data-if="c" style="display:none">set_shape_model_clutter</span><span data-if="cpp" style="display:none">SetShapeModelClutter</span><span data-if="com" style="display:none">SetShapeModelClutter</span><span data-if="dotnet" style="display:none">SetShapeModelClutter</span><span data-if="python" style="display:none">set_shape_model_clutter</span></code></a>, following the above values
<a href="#Score"><i><code><span data-if="hdevelop" style="display:inline">Score</span><span data-if="c" style="display:none">Score</span><span data-if="cpp" style="display:none">Score</span><span data-if="com" style="display:none">Score</span><span data-if="dotnet" style="display:none">score</span><span data-if="python" style="display:none">score</span></code></i></a> also returns the clutter scores of each found instance.
If, for example, half of the clutter region is filled by clutter edges,
the clutter score will equal 0.5.
If, e.g., two instances are found, the score is 0.9 for
the first instance and 0.8 for the second instance, and the clutter score
is 0.2 for the first instance and 0.1 for the second instance,
<a href="#Score"><i><code><span data-if="hdevelop" style="display:inline">Score</span><span data-if="c" style="display:none">Score</span><span data-if="cpp" style="display:none">Score</span><span data-if="com" style="display:none">Score</span><span data-if="dotnet" style="display:none">score</span><span data-if="python" style="display:none">score</span></code></i></a> = <i>[0.9,0.8,0.2,0.1]</i> is returned.
Please note that of all shape-based matching results, clutter scores are
affected the most when a variation of illumination occurs.
</p>
</dd>

<dt><b><a href="#Model"><i><code><span data-if="hdevelop" style="display:inline">Model</span><span data-if="c" style="display:none">Model</span><span data-if="cpp" style="display:none">Model</span><span data-if="com" style="display:none">Model</span><span data-if="dotnet" style="display:none">model</span><span data-if="python" style="display:none">model</span></code></i></a>:</b></dt>
<dd>
<p>

The type of the found instances of the models is returned in
<a href="#Model"><i><code><span data-if="hdevelop" style="display:inline">Model</span><span data-if="c" style="display:none">Model</span><span data-if="cpp" style="display:none">Model</span><span data-if="com" style="display:none">Model</span><span data-if="dotnet" style="display:none">model</span><span data-if="python" style="display:none">model</span></code></i></a>.  The elements of <a href="#Model"><i><code><span data-if="hdevelop" style="display:inline">Model</span><span data-if="c" style="display:none">Model</span><span data-if="cpp" style="display:none">Model</span><span data-if="com" style="display:none">Model</span><span data-if="dotnet" style="display:none">model</span><span data-if="python" style="display:none">model</span></code></i></a> are indices into the
tuple <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>, i.e., they can contain values from 0 to
|<a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>|-1.  Hence, a value of 0 in an element of
<a href="#Model"><i><code><span data-if="hdevelop" style="display:inline">Model</span><span data-if="c" style="display:none">Model</span><span data-if="cpp" style="display:none">Model</span><span data-if="com" style="display:none">Model</span><span data-if="dotnet" style="display:none">model</span><span data-if="python" style="display:none">model</span></code></i></a> corresponds to an instance of the first model in
<a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a>.
</p>
</dd>
</dl>
<h3>Specifying a timeout</h3>
<p>
Using 该算子 <a href="set_shape_model_param.html"><code><span data-if="hdevelop" style="display:inline">set_shape_model_param</span><span data-if="c" style="display:none">set_shape_model_param</span><span data-if="cpp" style="display:none">SetShapeModelParam</span><span data-if="com" style="display:none">SetShapeModelParam</span><span data-if="dotnet" style="display:none">SetShapeModelParam</span><span data-if="python" style="display:none">set_shape_model_param</span></code></a> you can specify a
<i><span data-if="hdevelop" style="display:inline">'timeout'</span><span data-if="c" style="display:none">"timeout"</span><span data-if="cpp" style="display:none">"timeout"</span><span data-if="com" style="display:none">"timeout"</span><span data-if="dotnet" style="display:none">"timeout"</span><span data-if="python" style="display:none">"timeout"</span></i> for <code><span data-if="hdevelop" style="display:inline">find_aniso_shape_models</span><span data-if="c" style="display:none">find_aniso_shape_models</span><span data-if="cpp" style="display:none">FindAnisoShapeModels</span><span data-if="com" style="display:none">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none">FindAnisoShapeModels</span><span data-if="python" style="display:none">find_aniso_shape_models</span></code>. If the shape models
referenced by <a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a> hold different values for <i><span data-if="hdevelop" style="display:inline">'timeout'</span><span data-if="c" style="display:none">"timeout"</span><span data-if="cpp" style="display:none">"timeout"</span><span data-if="com" style="display:none">"timeout"</span><span data-if="dotnet" style="display:none">"timeout"</span><span data-if="python" style="display:none">"timeout"</span></i>,
<code><span data-if="hdevelop" style="display:inline">find_aniso_shape_models</span><span data-if="c" style="display:none">find_aniso_shape_models</span><span data-if="cpp" style="display:none">FindAnisoShapeModels</span><span data-if="com" style="display:none">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none">FindAnisoShapeModels</span><span data-if="python" style="display:none">find_aniso_shape_models</span></code> uses the smallest one.
If <code><span data-if="hdevelop" style="display:inline">find_aniso_shape_models</span><span data-if="c" style="display:none">find_aniso_shape_models</span><span data-if="cpp" style="display:none">FindAnisoShapeModels</span><span data-if="com" style="display:none">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none">FindAnisoShapeModels</span><span data-if="python" style="display:none">find_aniso_shape_models</span></code> reaches this <i><span data-if="hdevelop" style="display:inline">'timeout'</span><span data-if="c" style="display:none">"timeout"</span><span data-if="cpp" style="display:none">"timeout"</span><span data-if="com" style="display:none">"timeout"</span><span data-if="dotnet" style="display:none">"timeout"</span><span data-if="python" style="display:none">"timeout"</span></i>, it
terminates without results and returns the error code 9400 (H_ERR_TIMEOUT).
Depending on the scaling ranges specified by <a href="#ScaleRMin"><i><code><span data-if="hdevelop" style="display:inline">ScaleRMin</span><span data-if="c" style="display:none">ScaleRMin</span><span data-if="cpp" style="display:none">ScaleRMin</span><span data-if="com" style="display:none">ScaleRMin</span><span data-if="dotnet" style="display:none">scaleRMin</span><span data-if="python" style="display:none">scale_rmin</span></code></i></a>,
<a href="#ScaleRMax"><i><code><span data-if="hdevelop" style="display:inline">ScaleRMax</span><span data-if="c" style="display:none">ScaleRMax</span><span data-if="cpp" style="display:none">ScaleRMax</span><span data-if="com" style="display:none">ScaleRMax</span><span data-if="dotnet" style="display:none">scaleRMax</span><span data-if="python" style="display:none">scale_rmax</span></code></i></a>, <a href="#ScaleCMin"><i><code><span data-if="hdevelop" style="display:inline">ScaleCMin</span><span data-if="c" style="display:none">ScaleCMin</span><span data-if="cpp" style="display:none">ScaleCMin</span><span data-if="com" style="display:none">ScaleCMin</span><span data-if="dotnet" style="display:none">scaleCMin</span><span data-if="python" style="display:none">scale_cmin</span></code></i></a> and <a href="#ScaleCMax"><i><code><span data-if="hdevelop" style="display:inline">ScaleCMax</span><span data-if="c" style="display:none">ScaleCMax</span><span data-if="cpp" style="display:none">ScaleCMax</span><span data-if="com" style="display:none">ScaleCMax</span><span data-if="dotnet" style="display:none">scaleCMax</span><span data-if="python" style="display:none">scale_cmax</span></code></i></a>,
<code><span data-if="hdevelop" style="display:inline">find_aniso_shape_models</span><span data-if="c" style="display:none">find_aniso_shape_models</span><span data-if="cpp" style="display:none">FindAnisoShapeModels</span><span data-if="com" style="display:none">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none">FindAnisoShapeModels</span><span data-if="python" style="display:none">find_aniso_shape_models</span></code> needs a significant
amount of time to free cached transformations if the shape model is not
pregenerated. As this transformations have to be freed after a timeout
occurs, the runtime of <code><span data-if="hdevelop" style="display:inline">find_aniso_shape_models</span><span data-if="c" style="display:none">find_aniso_shape_models</span><span data-if="cpp" style="display:none">FindAnisoShapeModels</span><span data-if="com" style="display:none">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none">FindAnisoShapeModels</span><span data-if="python" style="display:none">find_aniso_shape_models</span></code> exceeds the value of
the specified <i><span data-if="hdevelop" style="display:inline">'timeout'</span><span data-if="c" style="display:none">"timeout"</span><span data-if="cpp" style="display:none">"timeout"</span><span data-if="com" style="display:none">"timeout"</span><span data-if="dotnet" style="display:none">"timeout"</span><span data-if="python" style="display:none">"timeout"</span></i> by this time.
</p>
<h3>MinContrast with multiple models</h3>
<p>
Please note, that the different models that are given with the parameter
<a href="#ModelIDs"><i><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></i></a> should have been created with the same value of
<code><span data-if="hdevelop" style="display:inline">MinContrast</span><span data-if="c" style="display:none">MinContrast</span><span data-if="cpp" style="display:none">MinContrast</span><span data-if="com" style="display:none">MinContrast</span><span data-if="dotnet" style="display:none">minContrast</span><span data-if="python" style="display:none">min_contrast</span></code>. If they were created with different values for
<code><span data-if="hdevelop" style="display:inline">MinContrast</span><span data-if="c" style="display:none">MinContrast</span><span data-if="cpp" style="display:none">MinContrast</span><span data-if="com" style="display:none">MinContrast</span><span data-if="dotnet" style="display:none">minContrast</span><span data-if="python" style="display:none">min_contrast</span></code>, <code><span data-if="hdevelop" style="display:inline">find_aniso_shape_models</span><span data-if="c" style="display:none">find_aniso_shape_models</span><span data-if="cpp" style="display:none">FindAnisoShapeModels</span><span data-if="com" style="display:none">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none">FindAnisoShapeModels</span><span data-if="python" style="display:none">find_aniso_shape_models</span></code> will use the smallest
of these values.
</p>
<h3>Visualization of the results</h3>
<p>
To display the results found by shape-based matching,
we highly recommend the usage of the procedure
<code>dev_display_shape_matching_results</code>.
</p>
<h3>Further Information</h3>
<p>
For an explanation of the different 2D coordinate systems
used in HALCON, see the introduction of chapter
<a href="toc_transformations_2dtransformations.html">Transformations / 2D Transformations</a>.
</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  
    <li>Automatically parallelized on internal data level.</li>
  
</ul>
<p>This operator supports canceling timeouts and interrupts.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Image" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></b> (input_object)  </span><span>(multichannel-)image(-array) <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject</span> (byte / uint2)</span>
</div>
<p class="pardesc">Input image in which the models should be found.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ModelIDs" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ModelIDs</span><span data-if="c" style="display:none">ModelIDs</span><span data-if="cpp" style="display:none">ModelIDs</span><span data-if="com" style="display:none">ModelIDs</span><span data-if="dotnet" style="display:none">modelIDs</span><span data-if="python" style="display:none">model_ids</span></code></b> (input_control)  </span><span>shape_model(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HShapeModel.html">HShapeModel</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[HHandle]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the models.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="AngleStart" class="parname"><b><code><span data-if="hdevelop" style="display:inline">AngleStart</span><span data-if="c" style="display:none">AngleStart</span><span data-if="cpp" style="display:none">AngleStart</span><span data-if="com" style="display:none">AngleStart</span><span data-if="dotnet" style="display:none">angleStart</span><span data-if="python" style="display:none">angle_start</span></code></b> (input_control)  </span><span>angle.rad(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Smallest rotation of the models.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>-0.39</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>-3.14, -1.57, -0.79, -0.39, -0.20, 0.0</p>
</div>
  <div class="par">
<div class="parhead">
<span id="AngleExtent" class="parname"><b><code><span data-if="hdevelop" style="display:inline">AngleExtent</span><span data-if="c" style="display:none">AngleExtent</span><span data-if="cpp" style="display:none">AngleExtent</span><span data-if="com" style="display:none">AngleExtent</span><span data-if="dotnet" style="display:none">angleExtent</span><span data-if="python" style="display:none">angle_extent</span></code></b> (input_control)  </span><span>angle.rad(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Extent of the rotation angles.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0.79</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>6.29, 3.14, 1.57, 0.79, 0.39, 0.0</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>AngleExtent &gt;= 0</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="ScaleRMin" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ScaleRMin</span><span data-if="c" style="display:none">ScaleRMin</span><span data-if="cpp" style="display:none">ScaleRMin</span><span data-if="com" style="display:none">ScaleRMin</span><span data-if="dotnet" style="display:none">scaleRMin</span><span data-if="python" style="display:none">scale_rmin</span></code></b> (input_control)  </span><span>number(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Minimum scale of the models in the row direction.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0.9</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.5, 0.6, 0.7, 0.8, 0.9, 1.0</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>ScaleRMin &gt; 0</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="ScaleRMax" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ScaleRMax</span><span data-if="c" style="display:none">ScaleRMax</span><span data-if="cpp" style="display:none">ScaleRMax</span><span data-if="com" style="display:none">ScaleRMax</span><span data-if="dotnet" style="display:none">scaleRMax</span><span data-if="python" style="display:none">scale_rmax</span></code></b> (input_control)  </span><span>number(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Maximum scale of the models in the row direction.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>1.1</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>1.0, 1.1, 1.2, 1.3, 1.4, 1.5</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>ScaleRMax &gt;= ScaleRMin</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="ScaleCMin" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ScaleCMin</span><span data-if="c" style="display:none">ScaleCMin</span><span data-if="cpp" style="display:none">ScaleCMin</span><span data-if="com" style="display:none">ScaleCMin</span><span data-if="dotnet" style="display:none">scaleCMin</span><span data-if="python" style="display:none">scale_cmin</span></code></b> (input_control)  </span><span>number(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Minimum scale of the models in the column direction.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0.9</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.5, 0.6, 0.7, 0.8, 0.9, 1.0</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>ScaleCMin &gt; 0</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="ScaleCMax" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ScaleCMax</span><span data-if="c" style="display:none">ScaleCMax</span><span data-if="cpp" style="display:none">ScaleCMax</span><span data-if="com" style="display:none">ScaleCMax</span><span data-if="dotnet" style="display:none">scaleCMax</span><span data-if="python" style="display:none">scale_cmax</span></code></b> (input_control)  </span><span>number(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Maximum scale of the models in the column direction.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>1.1</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>1.0, 1.1, 1.2, 1.3, 1.4, 1.5</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>ScaleCMax &gt;= ScaleCMin</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="MinScore" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MinScore</span><span data-if="c" style="display:none">MinScore</span><span data-if="cpp" style="display:none">MinScore</span><span data-if="com" style="display:none">MinScore</span><span data-if="dotnet" style="display:none">minScore</span><span data-if="python" style="display:none">min_score</span></code></b> (input_control)  </span><span>real(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Minimum score of the instances of the models to
be found.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0.5</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0</p>
<p class="pardesc"><span class="parcat">Value range:
      </span><code>0
          ≤
        
    <span data-if="hdevelop" style="display:inline">MinScore</span>
    <span data-if="c" style="display:none">MinScore</span>
    <span data-if="cpp" style="display:none">MinScore</span>
    <span data-if="com" style="display:none">MinScore</span>
    <span data-if="dotnet" style="display:none">minScore</span>
    <span data-if="python" style="display:none">min_score</span>
    
          ≤
          1</code></p>
<p class="pardesc"><span class="parcat">Minimum increment:
      </span>0.01</p>
<p class="pardesc"><span class="parcat">Recommended increment:
      </span>0.05</p>
</div>
  <div class="par">
<div class="parhead">
<span id="NumMatches" class="parname"><b><code><span data-if="hdevelop" style="display:inline">NumMatches</span><span data-if="c" style="display:none">NumMatches</span><span data-if="cpp" style="display:none">NumMatches</span><span data-if="com" style="display:none">NumMatches</span><span data-if="dotnet" style="display:none">numMatches</span><span data-if="python" style="display:none">num_matches</span></code></b> (input_control)  </span><span>integer(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Number of instances of the models to be found
(or 0 for all matches).</p>
<p class="pardesc"><span class="parcat">Default:
      </span>1</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0, 1, 2, 3, 4, 5, 10, 20</p>
</div>
  <div class="par">
<div class="parhead">
<span id="MaxOverlap" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MaxOverlap</span><span data-if="c" style="display:none">MaxOverlap</span><span data-if="cpp" style="display:none">MaxOverlap</span><span data-if="com" style="display:none">MaxOverlap</span><span data-if="dotnet" style="display:none">maxOverlap</span><span data-if="python" style="display:none">max_overlap</span></code></b> (input_control)  </span><span>real(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Maximum overlap of the instances of the models
to be found.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0.5</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0</p>
<p class="pardesc"><span class="parcat">Value range:
      </span><code>0
          ≤
        
    <span data-if="hdevelop" style="display:inline">MaxOverlap</span>
    <span data-if="c" style="display:none">MaxOverlap</span>
    <span data-if="cpp" style="display:none">MaxOverlap</span>
    <span data-if="com" style="display:none">MaxOverlap</span>
    <span data-if="dotnet" style="display:none">maxOverlap</span>
    <span data-if="python" style="display:none">max_overlap</span>
    
          ≤
          1</code></p>
<p class="pardesc"><span class="parcat">Minimum increment:
      </span>0.01</p>
<p class="pardesc"><span class="parcat">Recommended increment:
      </span>0.05</p>
</div>
  <div class="par">
<div class="parhead">
<span id="SubPixel" class="parname"><b><code><span data-if="hdevelop" style="display:inline">SubPixel</span><span data-if="c" style="display:none">SubPixel</span><span data-if="cpp" style="display:none">SubPixel</span><span data-if="com" style="display:none">SubPixel</span><span data-if="dotnet" style="display:none">subPixel</span><span data-if="python" style="display:none">sub_pixel</span></code></b> (input_control)  </span><span>string(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Subpixel accuracy if not equal to <i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i>.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'least_squares'</span>
    <span data-if="c" style="display:none">"least_squares"</span>
    <span data-if="cpp" style="display:none">"least_squares"</span>
    <span data-if="com" style="display:none">"least_squares"</span>
    <span data-if="dotnet" style="display:none">"least_squares"</span>
    <span data-if="python" style="display:none">"least_squares"</span>
</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span>, <span data-if="hdevelop" style="display:inline">'interpolation'</span><span data-if="c" style="display:none">"interpolation"</span><span data-if="cpp" style="display:none">"interpolation"</span><span data-if="com" style="display:none">"interpolation"</span><span data-if="dotnet" style="display:none">"interpolation"</span><span data-if="python" style="display:none">"interpolation"</span>, <span data-if="hdevelop" style="display:inline">'least_squares'</span><span data-if="c" style="display:none">"least_squares"</span><span data-if="cpp" style="display:none">"least_squares"</span><span data-if="com" style="display:none">"least_squares"</span><span data-if="dotnet" style="display:none">"least_squares"</span><span data-if="python" style="display:none">"least_squares"</span>, <span data-if="hdevelop" style="display:inline">'least_squares_high'</span><span data-if="c" style="display:none">"least_squares_high"</span><span data-if="cpp" style="display:none">"least_squares_high"</span><span data-if="com" style="display:none">"least_squares_high"</span><span data-if="dotnet" style="display:none">"least_squares_high"</span><span data-if="python" style="display:none">"least_squares_high"</span>, <span data-if="hdevelop" style="display:inline">'least_squares_very_high'</span><span data-if="c" style="display:none">"least_squares_very_high"</span><span data-if="cpp" style="display:none">"least_squares_very_high"</span><span data-if="com" style="display:none">"least_squares_very_high"</span><span data-if="dotnet" style="display:none">"least_squares_very_high"</span><span data-if="python" style="display:none">"least_squares_very_high"</span>, <span data-if="hdevelop" style="display:inline">'max_deformation 1'</span><span data-if="c" style="display:none">"max_deformation 1"</span><span data-if="cpp" style="display:none">"max_deformation 1"</span><span data-if="com" style="display:none">"max_deformation 1"</span><span data-if="dotnet" style="display:none">"max_deformation 1"</span><span data-if="python" style="display:none">"max_deformation 1"</span>, <span data-if="hdevelop" style="display:inline">'max_deformation 2'</span><span data-if="c" style="display:none">"max_deformation 2"</span><span data-if="cpp" style="display:none">"max_deformation 2"</span><span data-if="com" style="display:none">"max_deformation 2"</span><span data-if="dotnet" style="display:none">"max_deformation 2"</span><span data-if="python" style="display:none">"max_deformation 2"</span>, <span data-if="hdevelop" style="display:inline">'max_deformation 3'</span><span data-if="c" style="display:none">"max_deformation 3"</span><span data-if="cpp" style="display:none">"max_deformation 3"</span><span data-if="com" style="display:none">"max_deformation 3"</span><span data-if="dotnet" style="display:none">"max_deformation 3"</span><span data-if="python" style="display:none">"max_deformation 3"</span>, <span data-if="hdevelop" style="display:inline">'max_deformation 4'</span><span data-if="c" style="display:none">"max_deformation 4"</span><span data-if="cpp" style="display:none">"max_deformation 4"</span><span data-if="com" style="display:none">"max_deformation 4"</span><span data-if="dotnet" style="display:none">"max_deformation 4"</span><span data-if="python" style="display:none">"max_deformation 4"</span>, <span data-if="hdevelop" style="display:inline">'max_deformation 5'</span><span data-if="c" style="display:none">"max_deformation 5"</span><span data-if="cpp" style="display:none">"max_deformation 5"</span><span data-if="com" style="display:none">"max_deformation 5"</span><span data-if="dotnet" style="display:none">"max_deformation 5"</span><span data-if="python" style="display:none">"max_deformation 5"</span>, <span data-if="hdevelop" style="display:inline">'max_deformation 6'</span><span data-if="c" style="display:none">"max_deformation 6"</span><span data-if="cpp" style="display:none">"max_deformation 6"</span><span data-if="com" style="display:none">"max_deformation 6"</span><span data-if="dotnet" style="display:none">"max_deformation 6"</span><span data-if="python" style="display:none">"max_deformation 6"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="NumLevels" class="parname"><b><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></b> (input_control)  </span><span>integer(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Number of pyramid levels used in the matching
(and lowest pyramid level to use if
|<a href="#NumLevels"><i><code><span data-if="hdevelop" style="display:inline">NumLevels</span><span data-if="c" style="display:none">NumLevels</span><span data-if="cpp" style="display:none">NumLevels</span><span data-if="com" style="display:none">NumLevels</span><span data-if="dotnet" style="display:none">numLevels</span><span data-if="python" style="display:none">num_levels</span></code></i></a>| = 2).</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0</p>
<p class="pardesc"><span class="parcat">List of values:
      </span>0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Greediness" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Greediness</span><span data-if="c" style="display:none">Greediness</span><span data-if="cpp" style="display:none">Greediness</span><span data-if="com" style="display:none">Greediness</span><span data-if="dotnet" style="display:none">greediness</span><span data-if="python" style="display:none">greediness</span></code></b> (input_control)  </span><span>real(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">“Greediness” of the search heuristic (0: safe
but slow; 1: fast but matches may be missed).</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0.9</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0</p>
<p class="pardesc"><span class="parcat">Value range:
      </span><code>0
          ≤
        
    <span data-if="hdevelop" style="display:inline">Greediness</span>
    <span data-if="c" style="display:none">Greediness</span>
    <span data-if="cpp" style="display:none">Greediness</span>
    <span data-if="com" style="display:none">Greediness</span>
    <span data-if="dotnet" style="display:none">greediness</span>
    <span data-if="python" style="display:none">greediness</span>
    
          ≤
          1</code></p>
<p class="pardesc"><span class="parcat">Minimum increment:
      </span>0.01</p>
<p class="pardesc"><span class="parcat">Recommended increment:
      </span>0.05</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Row" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Row</span><span data-if="c" style="display:none">Row</span><span data-if="cpp" style="display:none">Row</span><span data-if="com" style="display:none">Row</span><span data-if="dotnet" style="display:none">row</span><span data-if="python" style="display:none">row</span></code></b> (output_control)  </span><span>point.y-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Row coordinate of the found instances of the models.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Column" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Column</span><span data-if="c" style="display:none">Column</span><span data-if="cpp" style="display:none">Column</span><span data-if="com" style="display:none">Column</span><span data-if="dotnet" style="display:none">column</span><span data-if="python" style="display:none">column</span></code></b> (output_control)  </span><span>point.x-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Column coordinate of the found instances of the models.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Angle" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Angle</span><span data-if="c" style="display:none">Angle</span><span data-if="cpp" style="display:none">Angle</span><span data-if="com" style="display:none">Angle</span><span data-if="dotnet" style="display:none">angle</span><span data-if="python" style="display:none">angle</span></code></b> (output_control)  </span><span>angle.rad-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Rotation angle of the found instances of the models.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ScaleR" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ScaleR</span><span data-if="c" style="display:none">ScaleR</span><span data-if="cpp" style="display:none">ScaleR</span><span data-if="com" style="display:none">ScaleR</span><span data-if="dotnet" style="display:none">scaleR</span><span data-if="python" style="display:none">scale_r</span></code></b> (output_control)  </span><span>number-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Scale of the found instances of the models in
the row direction.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ScaleC" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ScaleC</span><span data-if="c" style="display:none">ScaleC</span><span data-if="cpp" style="display:none">ScaleC</span><span data-if="com" style="display:none">ScaleC</span><span data-if="dotnet" style="display:none">scaleC</span><span data-if="python" style="display:none">scale_c</span></code></b> (output_control)  </span><span>number-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Scale of the found instances of the models in
the column direction.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Score" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Score</span><span data-if="c" style="display:none">Score</span><span data-if="cpp" style="display:none">Score</span><span data-if="com" style="display:none">Score</span><span data-if="dotnet" style="display:none">score</span><span data-if="python" style="display:none">score</span></code></b> (output_control)  </span><span>real-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Score of the found instances of the models.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Model" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Model</span><span data-if="c" style="display:none">Model</span><span data-if="cpp" style="display:none">Model</span><span data-if="com" style="display:none">Model</span><span data-if="dotnet" style="display:none">model</span><span data-if="python" style="display:none">model</span></code></b> (output_control)  </span><span>integer-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Index of the found instances of the models.</p>
</div>
<h2 id="sec_example_all">例程 (HDevelop)</h2>
<pre class="example">
read_image (Image, 'pcb_focus/pcb_focus_telecentric_061')
gen_rectangle1 (ROI_0, 236, 241, 313, 321)
gen_circle (ROI_1, 281, 653, 41)
reduce_domain (Image, ROI_0, ImageReduced1)
reduce_domain (Image, ROI_1, ImageReduced2)
create_aniso_shape_model (ImageReduced1,'auto', -0.39, 0.79, 'auto', 0.9, \
                          1.1, 'auto', 0.9, 1.1, 'auto', 'auto', \
                          'use_polarity', 'auto', 'auto', ModelID1)
create_aniso_shape_model (ImageReduced2,'auto', -0.39, 0.79, 'auto', 0.9, \
                          1.1, 'auto', 0.9, 1.1, 'auto', 'auto', \
                          'use_polarity', 'auto', 'auto', ModelID2)
ModelIDs:=[ModelID1, ModelID2]
find_aniso_shape_models(Image, ModelIDs, -0.39, 0.79, 0.9, 1.1, 0.9, 1.1, \
                        0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, \
                        Angle, ScaleR, ScaleC, Score, Model)
* Display results
dev_display_shape_matching_results (ModelIDs, 'red', Row, Column, Angle, \
                                    ScaleR, ScaleC, Model)
</pre>
<h2 id="sec_result">结果</h2>
<p>If the parameter values are correct, 该算子
<code><span data-if="hdevelop" style="display:inline">find_aniso_shape_models</span><span data-if="c" style="display:none">find_aniso_shape_models</span><span data-if="cpp" style="display:none">FindAnisoShapeModels</span><span data-if="com" style="display:none">FindAnisoShapeModels</span><span data-if="dotnet" style="display:none">FindAnisoShapeModels</span><span data-if="python" style="display:none">find_aniso_shape_models</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    .  If the
input is empty (no input images are available) the behavior can be
set via <a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system('no_object_result',&lt;Result&gt;)</span><span data-if="c" style="display:none">set_system("no_object_result",&lt;Result&gt;)</span><span data-if="cpp" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="com" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="dotnet" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="python" style="display:none">set_system("no_object_result",&lt;Result&gt;)</span></code></a>.  If
necessary, an exception is raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="add_channels.html"><span data-if="hdevelop" style="display:inline">add_channels</span><span data-if="c" style="display:none">add_channels</span><span data-if="cpp" style="display:none">AddChannels</span><span data-if="com" style="display:none">AddChannels</span><span data-if="dotnet" style="display:none">AddChannels</span><span data-if="python" style="display:none">add_channels</span></a></code>, 
<code><a href="create_aniso_shape_model.html"><span data-if="hdevelop" style="display:inline">create_aniso_shape_model</span><span data-if="c" style="display:none">create_aniso_shape_model</span><span data-if="cpp" style="display:none">CreateAnisoShapeModel</span><span data-if="com" style="display:none">CreateAnisoShapeModel</span><span data-if="dotnet" style="display:none">CreateAnisoShapeModel</span><span data-if="python" style="display:none">create_aniso_shape_model</span></a></code>, 
<code><a href="read_shape_model.html"><span data-if="hdevelop" style="display:inline">read_shape_model</span><span data-if="c" style="display:none">read_shape_model</span><span data-if="cpp" style="display:none">ReadShapeModel</span><span data-if="com" style="display:none">ReadShapeModel</span><span data-if="dotnet" style="display:none">ReadShapeModel</span><span data-if="python" style="display:none">read_shape_model</span></a></code>, 
<code><a href="set_shape_model_origin.html"><span data-if="hdevelop" style="display:inline">set_shape_model_origin</span><span data-if="c" style="display:none">set_shape_model_origin</span><span data-if="cpp" style="display:none">SetShapeModelOrigin</span><span data-if="com" style="display:none">SetShapeModelOrigin</span><span data-if="dotnet" style="display:none">SetShapeModelOrigin</span><span data-if="python" style="display:none">set_shape_model_origin</span></a></code>, 
<code><a href="set_shape_model_clutter.html"><span data-if="hdevelop" style="display:inline">set_shape_model_clutter</span><span data-if="c" style="display:none">set_shape_model_clutter</span><span data-if="cpp" style="display:none">SetShapeModelClutter</span><span data-if="com" style="display:none">SetShapeModelClutter</span><span data-if="dotnet" style="display:none">SetShapeModelClutter</span><span data-if="python" style="display:none">set_shape_model_clutter</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="clear_shape_model.html"><span data-if="hdevelop" style="display:inline">clear_shape_model</span><span data-if="c" style="display:none">clear_shape_model</span><span data-if="cpp" style="display:none">ClearShapeModel</span><span data-if="com" style="display:none">ClearShapeModel</span><span data-if="dotnet" style="display:none">ClearShapeModel</span><span data-if="python" style="display:none">clear_shape_model</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="find_generic_shape_model.html"><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="set_system.html"><span data-if="hdevelop" style="display:inline">set_system</span><span data-if="c" style="display:none">set_system</span><span data-if="cpp" style="display:none">SetSystem</span><span data-if="com" style="display:none">SetSystem</span><span data-if="dotnet" style="display:none">SetSystem</span><span data-if="python" style="display:none">set_system</span></a></code>, 
<code><a href="get_system.html"><span data-if="hdevelop" style="display:inline">get_system</span><span data-if="c" style="display:none">get_system</span><span data-if="cpp" style="display:none">GetSystem</span><span data-if="com" style="display:none">GetSystem</span><span data-if="dotnet" style="display:none">GetSystem</span><span data-if="python" style="display:none">get_system</span></a></code>, 
<code><a href="set_shape_model_param.html"><span data-if="hdevelop" style="display:inline">set_shape_model_param</span><span data-if="c" style="display:none">set_shape_model_param</span><span data-if="cpp" style="display:none">SetShapeModelParam</span><span data-if="com" style="display:none">SetShapeModelParam</span><span data-if="dotnet" style="display:none">SetShapeModelParam</span><span data-if="python" style="display:none">set_shape_model_param</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Matching</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
